mirror of
https://github.com/transmission/transmission.git
synced 2025-12-20 02:18:42 +00:00
Update macos actions (#7845)
* ci: move macos-13 actions to macos-14
We have some GitHub Actions which we try to run on the oldest version of
macOS available. That's currently macos-13, but GitHub is deprecating it:
> This is a scheduled macos-13 brownout.
> The macOS-13 based runner images > are being deprecated. For more details,
> see https://github.com/actions/runner-images/issues/13046.
We last bumped this from macos-12 to macos-13 in 43f5ca8 #7275
* ci: do not specify architectures in macOS CI builds
GitHub has is phasing out su pport for macOS x86_64 runners
* ci: fold the macos-X-from-tarball jobs into a single job
* ci: fold macos-26 and macos-14 jobs into a single job
* Use macos-15-intel runners instead of macos-14 (arm64).
If we test compilation two times, at least do it on different host
archs.
Also macOS 15 supports latest Xcode with macOS 26.1 SDK.
* Make job names more meaningful
* Fix indentation in macos-xcodebuild-universal
---------
Co-authored-by: Charles Kerr <charles@charleskerr.com>
This commit is contained in:
committed by
GitHub
parent
5cc5538df4
commit
5a995aa335
191
.github/workflows/actions.yml
vendored
191
.github/workflows/actions.yml
vendored
@@ -322,36 +322,46 @@ jobs:
|
||||
run: |
|
||||
if (Select-String -Path makelog -Pattern 'warning:') { exit 1 }
|
||||
|
||||
macos-26-project:
|
||||
runs-on: macos-26
|
||||
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' }}
|
||||
steps:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
echo '${{ toJSON(needs) }}'
|
||||
echo '${{ toJSON(runner) }}'
|
||||
sw_vers
|
||||
- name: Get Dependencies
|
||||
run: brew install --formulae xcbeautify
|
||||
- name: Get Source
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: src
|
||||
submodules: recursive
|
||||
- name: Build
|
||||
run: set -o pipefail && xcodebuild -project src/Transmission.xcodeproj -scheme Transmission -configuration 'Release - Debug' -derivedDataPath pfx ONLY_ACTIVE_ARCH=NO build | xcbeautify --renderer github-actions
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: binaries-${{ github.job }}
|
||||
path: pfx/Build/Products/**/Transmission.app*
|
||||
|
||||
macos-26-arm64:
|
||||
macos-xcodebuild-universal:
|
||||
runs-on: macos-26
|
||||
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' }}
|
||||
steps:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
echo '${{ toJSON(needs) }}'
|
||||
echo '${{ toJSON(runner) }}'
|
||||
sw_vers
|
||||
- name: Get Dependencies
|
||||
run: brew install --formulae xcbeautify
|
||||
- name: Get Source
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: src
|
||||
submodules: recursive
|
||||
- name: Build
|
||||
run: set -o pipefail && xcodebuild -project src/Transmission.xcodeproj -scheme Transmission -configuration 'Release - Debug' -derivedDataPath pfx ONLY_ACTIVE_ARCH=NO build | xcbeautify --renderer github-actions
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: binaries-${{ github.job }}
|
||||
path: pfx/Build/Products/**/Transmission.app*
|
||||
|
||||
macos-cmake-universal:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [
|
||||
# This is the last and the only macOS Intel runner that GitHub Actions supports.
|
||||
# Xref https://github.com/actions/runner-images/issues/13046
|
||||
macos-15-intel,
|
||||
|
||||
# Tahoe preview. Added Sept 2025.
|
||||
# Xref https://github.com/actions/runner-images/pull/13007
|
||||
macos-26
|
||||
]
|
||||
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' ||
|
||||
@@ -359,6 +369,7 @@ jobs:
|
||||
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: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
@@ -386,7 +397,6 @@ jobs:
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_INSTALL_PREFIX=pfx \
|
||||
-DCMAKE_OSX_ARCHITECTURES='arm64' \
|
||||
-DCMAKE_PREFIX_PATH=`brew --prefix`/opt/qt \
|
||||
-DENABLE_CLI=${{ (needs.what-to-make.outputs.make-cli == 'true') && 'ON' || 'OFF' }} \
|
||||
-DENABLE_DAEMON=${{ (needs.what-to-make.outputs.make-daemon == 'true') && 'ON' || 'OFF' }} \
|
||||
@@ -410,51 +420,9 @@ jobs:
|
||||
run: cmake --build obj --config RelWithDebInfo --target install/strip
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: binaries-${{ github.job }}
|
||||
name: binaries-${{ matrix.os }}-cmake-universal
|
||||
path: pfx/**/*
|
||||
|
||||
# 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:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
echo '${{ toJSON(needs) }}'
|
||||
echo '${{ toJSON(runner) }}'
|
||||
sw_vers
|
||||
- name: Get Dependencies
|
||||
run: brew install --formulae cmake gettext libdeflate libevent libpsl miniupnpc ninja node pkgconf crc32c
|
||||
- name: Get Source
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: src
|
||||
submodules: recursive
|
||||
# oldest GitHub build support for Xcode (Transmission supports Xcode 12.5.1 and newer)
|
||||
- name: Set Xcode to 14.1
|
||||
run: |
|
||||
# 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 \
|
||||
-S src \
|
||||
-B obj \
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_INSTALL_PREFIX=pfx \
|
||||
-DCMAKE_OSX_ARCHITECTURES='x86_64' \
|
||||
-DENABLE_GTK=OFF \
|
||||
-DENABLE_MAC=${{ (needs.what-to-make.outputs.make-mac == 'true') && 'ON' || 'OFF' }} \
|
||||
-DENABLE_QT=OFF \
|
||||
-DENABLE_TESTS=OFF \
|
||||
-DENABLE_WERROR=ON \
|
||||
-DRUN_CLANG_TIDY=OFF \
|
||||
-DUSE_SYSTEM_CRC32C=ON
|
||||
- name: Make
|
||||
run: cmake --build obj --config RelWithDebInfo
|
||||
|
||||
alpine-musl:
|
||||
needs: [ what-to-make ]
|
||||
runs-on: ubuntu-22.04
|
||||
@@ -636,69 +604,19 @@ jobs:
|
||||
name: source-tarball
|
||||
path: obj/transmission*.tar.*
|
||||
|
||||
macos-26-universal-from-tarball:
|
||||
needs: [ make-source-tarball, what-to-make ]
|
||||
if: ${{ needs.what-to-make.outputs.make-mac == 'true' }}
|
||||
runs-on: macos-26
|
||||
steps:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
echo '${{ toJSON(needs) }}'
|
||||
echo '${{ toJSON(runner) }}'
|
||||
sw_vers
|
||||
- name: Get Dependencies
|
||||
run: brew install --formulae cmake ninja node pkgconf
|
||||
- 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;arm64' \
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_Intl=ON \
|
||||
-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=OFF \
|
||||
-DENABLE_MAC=${{ (needs.what-to-make.outputs.make-mac == 'true') && 'ON' || 'OFF' }} \
|
||||
-DENABLE_QT=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' }} \
|
||||
-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/**/*
|
||||
macos-from-tarball:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [
|
||||
# This is the last and the only macOS Intel runner that GitHub Actions supports.
|
||||
# Xref https://github.com/actions/runner-images/issues/13046
|
||||
macos-15-intel,
|
||||
|
||||
# Oldest GitHub support for CLI, GTK and QT on Mac
|
||||
macos-13-x86_64-from-tarball:
|
||||
needs: [ make-source-tarball, what-to-make ]
|
||||
# Tahoe preview. Added Sept 2025.
|
||||
# Xref https://github.com/actions/runner-images/pull/13007
|
||||
macos-26
|
||||
]
|
||||
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' ||
|
||||
@@ -706,7 +624,7 @@ jobs:
|
||||
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
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- name: Show Configuration
|
||||
run: |
|
||||
@@ -735,7 +653,6 @@ jobs:
|
||||
-G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DCMAKE_INSTALL_PREFIX=pfx \
|
||||
-DCMAKE_OSX_ARCHITECTURES='x86_64' \
|
||||
-DCMAKE_PREFIX_PATH=`brew --prefix`/opt/qt \
|
||||
-DENABLE_CLI=${{ (needs.what-to-make.outputs.make-cli == 'true') && 'ON' || 'OFF' }} \
|
||||
-DENABLE_DAEMON=${{ (needs.what-to-make.outputs.make-daemon == 'true') && 'ON' || 'OFF' }} \
|
||||
@@ -766,7 +683,7 @@ jobs:
|
||||
run: cmake --build obj --config RelWithDebInfo --target install/strip
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: binaries-${{ github.job }}
|
||||
name: binaries-${{ matrix.os }}-from-tarball
|
||||
path: pfx/**/*
|
||||
|
||||
debian-11-from-tarball:
|
||||
|
||||
Reference in New Issue
Block a user