20
20
strategy :
21
21
fail-fast : false
22
22
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]
24
24
runs-on : ${{ matrix.os }}
25
25
steps :
26
26
- name : Setup Python
55
55
shell : bash
56
56
run : |
57
57
# 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
59
62
ZIP=v2.0.2/alr-2.0.2-bin-aarch64-${RUNNER_OS}.zip
60
63
else
61
64
ZIP=v2.0.2/alr-2.0.2-bin-x86_64-${RUNNER_OS}.zip
65
68
bin/alr index --reset-community
66
69
bin/alr toolchain --select gnat_native gprbuild
67
70
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
83
71
- name : Fetch dependency commits numbers
84
72
shell : bash
85
73
if : ${{ env.TAG != env.DEFAULT_TAG }}
94
82
shell : bash
95
83
run : |
96
84
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
111
85
- name : Test
112
86
shell : bash
113
87
run : |
@@ -134,9 +108,6 @@ jobs:
134
108
if : ${{ env.TAG != env.DEFAULT_TAG }}
135
109
run : |
136
110
.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
140
111
- name : Package
141
112
shell : bash
142
113
run : |
0 commit comments