mirror of
https://github.com/transmission/transmission.git
synced 2026-04-17 23:54:19 +01:00
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:
136
.github/workflows/actions.yml
vendored
136
.github/workflows/actions.yml
vendored
@@ -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/**/*
|
||||
|
||||
Reference in New Issue
Block a user