From 43f5ca8e0c15c5c9e80326835bf02524b5eace48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C5=93ur?= Date: Mon, 9 Dec 2024 05:57:18 +0100 Subject: [PATCH] CI: updrading deprecated macOS 12 to macOS 13 (#7275) --- .github/workflows/actions.yml | 107 ++++++++++------------------------ 1 file changed, 30 insertions(+), 77 deletions(-) diff --git a/.github/workflows/actions.yml b/.github/workflows/actions.yml index 4c8ee9477..92ea2c63c 100644 --- a/.github/workflows/actions.yml +++ b/.github/workflows/actions.yml @@ -313,7 +313,10 @@ jobs: macos-15-project: runs-on: macos-15 needs: [ what-to-make ] - if: ${{ needs.what-to-make.outputs.make-cli == 'true' || needs.what-to-make.outputs.make-daemon == 'true' || needs.what-to-make.outputs.make-mac == 'true' || needs.what-to-make.outputs.make-utils == 'true' }} + if: ${{ needs.what-to-make.outputs.make-cli == 'true' || + needs.what-to-make.outputs.make-daemon == 'true' || + needs.what-to-make.outputs.make-mac == 'true' || + needs.what-to-make.outputs.make-utils == 'true' }} steps: - name: Show Configuration run: | @@ -335,7 +338,13 @@ jobs: macos-15-arm64: runs-on: macos-15 needs: [ what-to-make ] - if: ${{ needs.what-to-make.outputs.make-cli == 'true' || needs.what-to-make.outputs.make-daemon == 'true' || needs.what-to-make.outputs.make-gtk == 'true' || needs.what-to-make.outputs.make-mac == 'true' || needs.what-to-make.outputs.make-qt == 'true' || needs.what-to-make.outputs.make-tests == 'true' || needs.what-to-make.outputs.make-utils == 'true' }} + if: ${{ needs.what-to-make.outputs.make-cli == 'true' || + needs.what-to-make.outputs.make-daemon == 'true' || + needs.what-to-make.outputs.make-gtk == 'true' || + needs.what-to-make.outputs.make-mac == 'true' || + needs.what-to-make.outputs.make-qt == 'true' || + needs.what-to-make.outputs.make-tests == 'true' || + needs.what-to-make.outputs.make-utils == 'true' }} steps: - name: Show Configuration run: | @@ -391,9 +400,9 @@ jobs: name: binaries-${{ github.job }} path: pfx/**/* - # Only verify build support on older macOS and SDK - macos-12: - runs-on: macos-12 + # oldest GitHub build support on macOS (Transmission supports macOS 11.0 and newer) + macos-13: + runs-on: macos-13 needs: [ what-to-make ] if: ${{ needs.what-to-make.outputs.make-mac == 'true' }} steps: @@ -404,16 +413,17 @@ jobs: sw_vers - name: Get Dependencies run: | - brew unlink pkg-config # https://github.com/actions/runner-images/issues/10984 brew install --formulae cmake gettext libdeflate libevent libpsl miniupnpc ninja node pkgconf - name: Get Source uses: actions/checkout@v4 with: path: src submodules: recursive - - name: Set Xcode to 13.2.1 + # oldest GitHub build support for Xcode (Transmission supports Xcode 12.5.1 and newer) + - name: Set Xcode to 14.1 run: | - sudo xcode-select --switch /Applications/Xcode_13.2.1.app + # https://github.com/actions/runner-images/blob/main/images/macos/macos-13-Readme.md#xcode + sudo xcode-select --switch /Applications/Xcode_14.1.app - name: Configure run: | cmake \ @@ -672,10 +682,16 @@ jobs: name: binaries-${{ github.job }} path: pfx/**/* - # Oldest GitHub support for QT on Mac + # Oldest GitHub support for CLI, GTK and QT on Mac macos-13-x86_64-from-tarball: needs: [ make-source-tarball, what-to-make ] - if: ${{ needs.what-to-make.outputs.make-qt == 'true' || needs.what-to-make.outputs.make-tests == 'true' }} + if: ${{ needs.what-to-make.outputs.make-cli == 'true' || + needs.what-to-make.outputs.make-daemon == 'true' || + needs.what-to-make.outputs.make-gtk == 'true' || + needs.what-to-make.outputs.make-mac == 'true' || + needs.what-to-make.outputs.make-qt == 'true' || + needs.what-to-make.outputs.make-tests == 'true' || + needs.what-to-make.outputs.make-utils == 'true' }} runs-on: macos-13 steps: - name: Show Configuration @@ -685,8 +701,10 @@ jobs: sw_vers - name: Get Dependencies run: | - brew unlink pkg-config # https://github.com/actions/runner-images/issues/10984 brew install --formulae cmake gettext ninja node pkgconf + - name: Get Dependencies (GTK) + if: ${{ needs.what-to-make.outputs.make-gtk == 'true' }} + run: brew install --formula gtkmm3 - name: Get Dependencies (Qt) if: ${{ needs.what-to-make.outputs.make-qt == 'true' }} run: brew install --formula qt @@ -706,76 +724,11 @@ jobs: -DCMAKE_INSTALL_PREFIX=pfx \ -DCMAKE_OSX_ARCHITECTURES='x86_64' \ -DCMAKE_PREFIX_PATH=`brew --prefix`/opt/qt \ - -DENABLE_CLI=OFF \ - -DENABLE_DAEMON=OFF \ - -DENABLE_GTK=OFF \ - -DENABLE_MAC=OFF \ - -DENABLE_QT=ON \ - -DENABLE_TESTS=${{ (needs.what-to-make.outputs.make-tests == 'true') && 'ON' || 'OFF' }} \ - -DENABLE_UTILS=OFF \ - -DREBUILD_WEB=${{ (needs.what-to-make.outputs.make-web == 'true') && 'ON' || 'OFF' }} \ - -DENABLE_WERROR=ON \ - -DRUN_CLANG_TIDY=OFF \ - -DUSE_SYSTEM_EVENT2=OFF \ - -DUSE_SYSTEM_DEFLATE=OFF \ - -DUSE_SYSTEM_DHT=OFF \ - -DUSE_SYSTEM_MINIUPNPC=OFF \ - -DUSE_SYSTEM_NATPMP=OFF \ - -DUSE_SYSTEM_UTP=OFF \ - -DUSE_SYSTEM_B64=OFF \ - -DUSE_SYSTEM_PSL=OFF - - name: Make - run: cmake --build obj --config RelWithDebInfo - - name: Test - if: ${{ needs.what-to-make.outputs.make-tests == 'true' }} - env: - TMPDIR: /private/tmp - run: cmake -E chdir obj ctest -j $(sysctl -n hw.logicalcpu) --build-config RelWithDebInfo --output-on-failure - - name: Install - run: cmake --build obj --config RelWithDebInfo --target install/strip - - uses: actions/upload-artifact@v4 - with: - name: binaries-${{ github.job }} - path: pfx/**/* - - # Oldest GitHub support for CLI and GTK on Mac - macos-12-x86_64-from-tarball: - needs: [ make-source-tarball, what-to-make ] - if: ${{ needs.what-to-make.outputs.make-cli == 'true' || needs.what-to-make.outputs.make-daemon == 'true' || needs.what-to-make.outputs.make-gtk == 'true' || needs.what-to-make.outputs.make-mac == 'true' || needs.what-to-make.outputs.make-tests == 'true' || needs.what-to-make.outputs.make-utils == 'true' }} - runs-on: macos-12 - steps: - - name: Show Configuration - run: | - echo '${{ toJSON(needs) }}' - echo '${{ toJSON(runner) }}' - sw_vers - - name: Get Dependencies - run: | - brew unlink pkg-config # https://github.com/actions/runner-images/issues/10984 - brew install --formulae cmake gettext ninja node pkgconf - - name: Get Dependencies (GTK) - if: ${{ needs.what-to-make.outputs.make-gtk == 'true' }} - run: brew install --formula gtkmm3 - - name: Get Source - uses: actions/download-artifact@v4 - with: - name: source-tarball - - name: Extract Source - run: mkdir src && tar xf transmission*.tar.* -C src --strip-components 1 - - name: Configure - run: | - cmake \ - -S src \ - -B obj \ - -G Ninja \ - -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_PREFIX=pfx \ - -DCMAKE_OSX_ARCHITECTURES='x86_64' \ -DENABLE_CLI=${{ (needs.what-to-make.outputs.make-cli == 'true') && 'ON' || 'OFF' }} \ -DENABLE_DAEMON=${{ (needs.what-to-make.outputs.make-daemon == 'true') && 'ON' || 'OFF' }} \ -DENABLE_GTK=${{ (needs.what-to-make.outputs.make-gtk == 'true') && 'ON' || 'OFF' }} \ -DENABLE_MAC=${{ (needs.what-to-make.outputs.make-mac == 'true') && 'ON' || 'OFF' }} \ - -DENABLE_QT=OFF \ + -DENABLE_QT=${{ (needs.what-to-make.outputs.make-qt == 'true') && 'ON' || 'OFF' }} \ -DENABLE_TESTS=${{ (needs.what-to-make.outputs.make-tests == 'true') && 'ON' || 'OFF' }} \ -DENABLE_UTILS=${{ (needs.what-to-make.outputs.make-utils == 'true') && 'ON' || 'OFF' }} \ -DREBUILD_WEB=${{ (needs.what-to-make.outputs.make-web == 'true') && 'ON' || 'OFF' }} \