ci: speed up by using native arm64 runners (#8571)

* ci: run x86_64 only for BSD

* ci: native arm64 runner
This commit is contained in:
Yat Ho
2026-02-19 14:20:43 +08:00
committed by GitHub
parent 5856619fbc
commit 642c12cbb5

View File

@@ -1201,6 +1201,87 @@ jobs:
- name: Make
run: cmake --build obj --config RelWithDebInfo -- "-k 0"
ubuntu-24-04-arm64:
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-qt == 'true' ||
needs.what-to-make.outputs.make-tests == 'true' ||
needs.what-to-make.outputs.make-utils == 'true'
runs-on: ubuntu-24.04-arm
steps:
- name: Show Configuration
run: |
echo '${{ toJSON(needs) }}'
echo '${{ toJSON(runner) }}'
cat /etc/os-release
- name: Get Composite Actions
uses: actions/checkout@v6
with:
sparse-checkout: |
.github/actions
sparse-checkout-cone-mode: false
- name: Get Dependencies
uses: ./.github/actions/install-deps
with:
compiler: clang # Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109717
enable-gtk: ${{ needs.what-to-make.outputs.make-gtk == 'true' && 'gtk3' || 'false' }}
enable-qt: ${{ needs.what-to-make.outputs.make-qt == 'true' && 'qt6' || 'false' }}
use-sudo: true
- name: Get NPM
if: needs.what-to-make.outputs.make-web == 'true'
uses: actions/setup-node@v6
with:
node-version: lts/*
- name: Get Source
uses: actions/download-artifact@v7
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_CXX_COMPILER='clang++' \
-DCMAKE_C_COMPILER='clang' \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=pfx \
-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=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' }} \
-DENABLE_WERROR=ON \
-DRUN_CLANG_TIDY=OFF \
-DUSE_SYSTEM_DEFAULT=ON \
-DUSE_SYSTEM_DHT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SIGSLOT=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_SMALL=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_UTP=OFF `# Not packaged in Ubuntu` \
-DUSE_SYSTEM_WIDE_INTEGER=OFF `# Not packaged in Ubuntu`
- name: Build
run: cmake --build obj --config RelWithDebInfo
- name: Test
if: needs.what-to-make.outputs.make-tests == 'true'
uses: ./.github/actions/run-tests
with:
build-dir: obj
build-config: RelWithDebInfo
- name: Install
run: cmake --install obj --config RelWithDebInfo --strip
- uses: actions/upload-artifact@v6
with:
name: binaries-${{ github.job }}
path: pfx/**/*
freebsd:
needs: [ make-source-tarball, what-to-make ]
if: |
@@ -1210,17 +1291,6 @@ 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'
strategy:
fail-fast: false
matrix:
arch:
- x86_64
- aarch64
is-pull-request:
- ${{ github.event_name == 'pull_request' }}
exclude:
- arch: aarch64
is-pull-request: true
runs-on: ubuntu-latest
steps:
- name: Show Configuration
@@ -1235,7 +1305,6 @@ jobs:
uses: vmactions/freebsd-vm@v1
with:
usesh: true
arch: ${{ matrix.arch }}
prepare: |
set -ex
uname -a
@@ -1293,7 +1362,7 @@ jobs:
rm -rf obj src
- uses: actions/upload-artifact@v6
with:
name: binaries-${{ github.job }}-${{ matrix.arch }}
name: binaries-${{ github.job }}
path: pfx/**/*
crypto:
@@ -1392,17 +1461,6 @@ 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'
strategy:
fail-fast: false
matrix:
arch:
- x86_64
- aarch64
is-pull-request:
- ${{ github.event_name == 'pull_request' }}
exclude:
- arch: aarch64
is-pull-request: true
runs-on: ubuntu-latest
steps:
- name: Show Configuration
@@ -1417,7 +1475,6 @@ jobs:
uses: vmactions/openbsd-vm@v1
with:
usesh: true
arch: ${{ matrix.arch }}
prepare: |
set -ex
uname -a
@@ -1473,7 +1530,7 @@ jobs:
rm -rf obj src
- uses: actions/upload-artifact@v6
with:
name: binaries-${{ github.job }}-${{ matrix.arch }}
name: binaries-${{ github.job }}
path: pfx/**/*
netbsd:
@@ -1485,20 +1542,6 @@ 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'
strategy:
fail-fast: false
matrix:
arch:
- vmactions: x86_64
binary-set: amd64
- vmactions: aarch64
binary-set: evbarm-aarch64
is-pull-request:
- ${{ github.event_name == 'pull_request' }}
exclude:
- arch:
vmactions: aarch64
is-pull-request: true
runs-on: ubuntu-latest
steps:
- name: Show Configuration
@@ -1513,7 +1556,6 @@ jobs:
uses: vmactions/netbsd-vm@v1
with:
usesh: true
arch: ${{ matrix.arch.vmactions }}
prepare: |
set -ex
uname -a
@@ -1538,7 +1580,7 @@ jobs:
utf8-cpp
if [ '${{ needs.what-to-make.outputs.make-gtk }}' = 'true' ] || [ '${{ needs.what-to-make.outputs.make-qt }}' = 'true' ]; then
for set in xbase xcomp; do
curl -sL "https://cdn.netbsd.org/pub/NetBSD/NetBSD-`uname -r`/${{ matrix.arch.binary-set }}/binary/sets/$set.tar.xz" | tar xJpf - -C /
curl -sL "https://cdn.netbsd.org/pub/NetBSD/NetBSD-`uname -r`/amd64/binary/sets/$set.tar.xz" | tar xJpf - -C /
done
fi
run: |
@@ -1577,7 +1619,7 @@ jobs:
rm -rf obj src
- uses: actions/upload-artifact@v6
with:
name: binaries-${{ github.job }}-${{ matrix.arch.vmactions }}
name: binaries-${{ github.job }}
path: pfx/**/*
dragonflybsd:
@@ -1589,11 +1631,6 @@ 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'
strategy:
fail-fast: false
matrix:
arch:
- x86_64
runs-on: ubuntu-latest
steps:
- name: Show Configuration
@@ -1608,7 +1645,6 @@ jobs:
uses: vmactions/dragonflybsd-vm@v1
with:
usesh: true
arch: ${{ matrix.arch }}
prepare: |
set -ex
uname -a
@@ -1670,5 +1706,5 @@ jobs:
rm -rf obj src
- uses: actions/upload-artifact@v6
with:
name: binaries-${{ github.job }}-${{ matrix.arch }}
name: binaries-${{ github.job }}
path: pfx/**/*