Skip to content

Commit

Permalink
Github: switch macOS runners to homebrew
Browse files Browse the repository at this point in the history
  • Loading branch information
jhoyt4 committed Jan 12, 2025
1 parent 32e0f8e commit 21f2c7c
Showing 1 changed file with 14 additions and 48 deletions.
62 changes: 14 additions & 48 deletions .github/workflows/build-mythtv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -306,23 +306,19 @@ jobs:
- desc: 'macOS 13 (Ventura) x86_64'
runner: 'macOS-13'
arch: 'x86_64'
python_dot_version: '3.13'
qt_version: 'qt5'
database_version: 'mysql8'
qt_version: 'qt6'
database_version: 'mariadb'
extrapkgs: ''
configureopts: '--disable-firewire --enable-libmp3lame --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-bdjava'
linkerflags: '-Wl,-ld_classic'
cross_compile: false
- desc: 'macOS 14 (Sonoma) arm64'
runner: 'macOS-14'
arch: 'arm64'
python_dot_version: '3.13'
qt_version: 'qt5'
database_version: 'mysql8'
qt_version: 'qt6'
database_version: 'mariadb'
extrapkgs: ''
configureopts: '--disable-firewire --enable-libmp3lame --enable-libvpx --enable-libxvid --enable-libx264 --enable-libx265 --enable-bdjava'
linkerflags: '-Wl,-ld_classic'
cross_compile: false

compiler:
- desc: 'clang'
Expand All @@ -340,7 +336,6 @@ jobs:
CCACHE_DIR: $HOME/.ccache
CCACHE_COMPRESS: true
CCACHE_MAXSIZE: 250M
ANSIBLE_CMD: "ansible-playbook-${{ matrix.os.python_dot_version }}"
CONFIGURE_CMD: "./configure"
MAKE_CMD: 'make'
ANSIBLE_EXTRA: ''
Expand All @@ -353,33 +348,15 @@ jobs:
key: ${{ matrix.os.desc }}-${{ matrix.compiler.desc }}-build-core-ccache-${{ github.sha }}
restore-keys: ${{ matrix.os.desc }}-${{ matrix.compiler.desc }}-build-core-ccache

- name: Bootstrap Macports
env:
GH_URL: "https://raw.githubusercontent.com"
MP_URL: "GiovanniBussi/macports-ci/master/macports-ci"
- name: Update Homebrew Environment
run: |
PKGMGR_PREFIX=/opt/local
brew install ansible
PKGMGR_PREFIX=$(brew --prefix)
echo "PKGMGR_PREFIX=$PKGMGR_PREFIX" >> $GITHUB_ENV
curl -LJO "${GH_URL}/${MP_URL}"
arch -${{ matrix.os.arch }} bash -c "source ./macports-ci install"
export PATH=${PKGMGR_PREFIX}/bin:${PKGMGR_PREFIX}/libexec/${{ matrix.os.qt_version }}/bin:${PKGMGR_PREFIX}/sbin:$PATH
echo "PKGMGR_CMD=sudo $PKGMGR_PREFIX/bin/port" >> $GITHUB_ENV
- name: Remove Homebrew
env:
GH_URL: "https://raw.githubusercontent.com"
HB_URL: "Homebrew/install/HEAD/uninstall.sh"
run: |
/bin/bash -c "$(curl -fsSL ${GH_URL}/${HB_URL})" --force
sudo rm -Rf /usr/local/bin/brew
- name: Setup cross-compile environment
run: |
echo "PKGMGR_CMD=arch -${{ matrix.os.arch }} sudo ${PKGMGR_PREFIX}/bin/port" >> $GITHUB_ENV
echo "ANSIBLE_CMD=arch -${{ matrix.os.arch }} $ANSIBLE_CMD" >> $GITHUB_ENV
echo "CONFIGURE_CMD=arch -${{ matrix.os.arch }} $CONFIGURE_CMD" >> $GITHUB_ENV
echo "MAKE_CMD=arch -${{ matrix.os.arch }} $MAKE_CMD" >> $GITHUB_ENV
if: matrix.os.cross_compile
PYTHON_VERSION=$(python3 -c "import sys; print(str(sys.version_info.major)+str(sys.version_info.minor))")
echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_ENV
ANSIBLE_EXTRA="database_version=${{ matrix.os.database_version }}"
echo "ANSIBLE_EXTRA=$ANSIBLE_EXTRA" >> $GITHUB_ENV
- name: Setup build envinomental variables
run: |
Expand All @@ -388,18 +365,7 @@ jobs:
echo "LDFLAGS=-L${PKGMGR_PREFIX}/lib ${{ matrix.os.linkerflags }}" >> $GITHUB_ENV
echo "LIBRARY_PATH=${PKGMGR_PREFIX}/lib" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=${PKGMGR_PREFIX}/lib/pkgconfig" >> $GITHUB_ENV
echo "QMAKE_CMD=${PKGMGR_PREFIX}/libexec/${{ matrix.os.qt_version }}/bin/qmake" >> $GITHUB_ENV
- name: Install ansible, pip, and virtualenv
run: |
PYTHON_VERSION=${{ matrix.os.python_dot_version }}
PYTHON_VERSION=${PYTHON_VERSION//.}
${PKGMGR_CMD} install py${PYTHON_VERSION}-ansible py${PYTHON_VERSION}-pip py${PYTHON_VERSION}-virtualenv
${PKGMGR_CMD} select --set python python${PYTHON_VERSION}
${PKGMGR_CMD} select --set python3 python${PYTHON_VERSION}
${PKGMGR_CMD} select --set ansible py${PYTHON_VERSION}-ansible
ANSIBLE_EXTRA="ansible_python_interpreter=${PKGMGR_PREFIX}/bin/python${{ matrix.os.python_dot_version }} database_version=${{ matrix.os.database_version }}"
echo "ANSIBLE_EXTRA=$ANSIBLE_EXTRA" >> $GITHUB_ENV
echo "QMAKE_CMD=${PKGMGR_PREFIX}/opt/${{ matrix.os.qt_version }}/bin/qmake" >> $GITHUB_ENV
- name: Setup qt6 variables
run: echo "ANSIBLE_EXTRA=$ANSIBLE_EXTRA qt6=true" >> $GITHUB_ENV
Expand All @@ -413,7 +379,7 @@ jobs:

- name: Run ansible to install build requirements
working-directory: ansible
run: ${ANSIBLE_CMD} mythtv.yml --extra-vars="$ANSIBLE_EXTRA" --limit localhost
run: ansible-playbook mythtv.yml --extra-vars="$ANSIBLE_EXTRA" --limit localhost

- name: Update MYSQL environmental variables
run: |
Expand All @@ -426,7 +392,7 @@ jobs:
- name: Source the virtual python environemnt
run: |
PYTHON_VENV_PATH="$HOME/.mythtv/python-virtualenv"
PYTHON_VENV_PATH="$HOME/.mythtv/python-venv$PYTHON_VERSION"
source "${PYTHON_VENV_PATH}/bin/activate"
echo "PYTHON_CMD=${PYTHON_VENV_PATH}/bin/python3" >> $GITHUB_ENV
Expand Down

0 comments on commit 21f2c7c

Please sign in to comment.