2020 strategy :
2121 fail-fast : false
2222 matrix :
23- os : [macos-13, macos-14, ubuntu-20.04, windows-latest]
23+ os : [macos-13, macos-14, ubuntu-20.04, ubuntu-22.04-arm, windows-latest]
2424 runs-on : ${{ matrix.os }}
2525 steps :
2626 - name : Setup Python
5555 shell : bash
5656 run : |
5757 # alire-project/setup-alire works for ARM64 Mac OS X now. Shall we use it?
58- if [[ "$RUNNER_ARCH" == ARM64 ]] ; then
58+ if [[ ${{ matrix.os }} == ubuntu-22.04-arm ]] ; then
59+ # Alire 2.1.0 was built for ubuntu 24.04, doesn't work on 22.04
60+ ZIP=nightly/alr-nightly-bin-aarch64-linux.zip
61+ elif [[ "$RUNNER_ARCH" == ARM64 ]] ; then
5962 ZIP=v2.0.2/alr-2.0.2-bin-aarch64-${RUNNER_OS}.zip
6063 else
6164 ZIP=v2.0.2/alr-2.0.2-bin-x86_64-${RUNNER_OS}.zip
6568 bin/alr index --reset-community
6669 bin/alr toolchain --select gnat_native gprbuild
6770 echo $PWD/bin >> $GITHUB_PATH
68- - name : Get cross GNAT toolchain (Linux)
69- if : ${{ runner.os == 'Linux' }}
70- env :
71- AWS_ACCESS_KEY_ID : ${{secrets.GHA_CACHE_ACCESS_KEY_ID}}
72- AWS_SECRET_ACCESS_KEY : ${{secrets.GHA_CACHE_SECRET}}
73- AWS_DEFAULT_REGION : eu-west-1
74- run : |
75- sudo apt install -y libc6-dev-arm64-cross linux-libc-dev-arm64-cross binutils-aarch64-linux-gnu
76- aws s3 cp s3://adacore-gha-tray-eu-west-1/toolchain/aarch64-Linux-gcc-14.2.tar.bz2 . --sse=AES256
77- aws s3 cp s3://adacore-gha-tray-eu-west-1/toolchain/aarch64-Linux-gmp-6.2.1.tar.bz2 . --sse=AES256
78- sudo tar xjf aarch64-Linux-gcc-14.2.tar.bz2 -C /
79- sudo tar xjf aarch64-Linux-gmp-6.2.1.tar.bz2 -C /
80- # This step can fail on personal forks that don't have credentials for
81- # AWS. Allow failure so that the non-cross build still gets performed.
82- continue-on-error : true
8371 - name : Fetch dependency commits numbers
8472 shell : bash
8573 if : ${{ env.TAG != env.DEFAULT_TAG }}
9482 shell : bash
9583 run : |
9684 scripts/build_als.sh all "$TAG"
97- - name : Build ALS with cross (Linux)
98- if : ${{ runner.os == 'Linux' }}
99- run : |
100- if alr exec -- gprconfig --show-targets | grep aarch64-linux; then
101- export GPRBUILD_EXTRA=--target=aarch64-linux
102- export NODE_ARCH_PLATFORM=arm64/linux
103- find . -name '*.ali' -delete
104- find . -name '*.[ao]' -delete
105- scripts/build_als.sh build_als "$TAG" arm64/linux
106- scripts/build_als.sh strip_debug "$TAG" arm64/linux
107- else
108- echo "No AArch64 cross compiler found:"
109- alr exec -- gprconfig --show-targets || true
110- fi
11185 - name : Test
11286 shell : bash
11387 run : |
@@ -134,9 +108,6 @@ jobs:
134108 if : ${{ env.TAG != env.DEFAULT_TAG }}
135109 run : |
136110 .github/workflows/release.sh "${{ secrets.GITHUB_TOKEN }}" $TAG ""
137- if [ -f integration/vscode/ada/arm64/linux/ada_language_server ] ; then
138- .github/workflows/release.sh "${{ secrets.GITHUB_TOKEN }}" $TAG arm64/linux
139- fi
140111 - name : Package
141112 shell : bash
142113 run : |
0 commit comments