-
Notifications
You must be signed in to change notification settings - Fork 198
178 lines (177 loc) · 7.84 KB
/
Copy pathcross-test.yml
File metadata and controls
178 lines (177 loc) · 7.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
name: Cross Build & Test
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
permissions:
contents: read
jobs:
ppc64-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: PPC64 Build/Test
run: tests/ci/run_cross_tests.sh ppc64 powerpc64-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_BUILD_TYPE=Release -DFIPS=1 -DBUILD_SHARED_LIBS=1"
ppc32-non-fips-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: PPC32 Build/Test
run: tests/ci/run_cross_tests.sh ppc powerpc-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release"
ppc32-fips-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: PPC32 Build/Test
run: tests/ci/run_cross_tests.sh ppc powerpc-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release -DFIPS=1 -DBUILD_SHARED_LIBS=1"
ppc64le-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: PPC64LE Build/Test
run: tests/ci/run_cross_tests.sh ppc64le powerpc64le-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_BUILD_TYPE=Release -DFIPS=1 -DBUILD_SHARED_LIBS=1" "-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-DOPENSSL_GETAUXVAL_FORCE_PROC_FALLBACK"
riscv64-non-fips-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: RISC-V 64 Build/Test
# The flag below is set to avoid the following error with GCC 11.4.0:
#
# /home/runner/work/aws-lc/aws-lc/crypto/pem/pem_lib.c:705:11: error: 'strncmp' of strings of length 1 and 9 and bound of 9 evaluates to nonzero [-Werror=string-compare]
# 705 | if (strncmp(buf, "-----END ", 9) == 0) {
# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
env:
CFLAGS: "-Wno-string-compare"
run: tests/ci/run_cross_tests.sh riscv riscv64-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release"
armv6-non-fips-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: armv6 Build/Test
run: tests/ci/run_cross_tests.sh armv6 armv6-unknown-linux-gnueabi "-DCMAKE_BUILD_TYPE=Release"
armv7-uclibc-build-test:
# Bootlin 2022.08-1 ships uclibc-ng 1.0.42, which predates uclibc-ng's
# own <sys/auxv.h> (added in 1.0.43). On this sysroot,
# __has_include(<sys/auxv.h>) in cpu_getauxval_linux.h evaluates false,
# so natural detection lands on the /proc/self/auxv fallback -- exactly
# the scenario from https://github.com/aws/aws-lc/issues/3188. A single
# job thus covers both the non-glibc detection path and the fallback
# code path end-to-end. If this toolchain is ever bumped to a release
# that does ship <sys/auxv.h>, the "INFO:" line in
# run_cross_tests_bootlin.sh will make the coverage loss visible in the
# CI log.
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: armv7 uclibc Build/Test
run: |
tests/ci/run_cross_tests_bootlin.sh \
armv7 \
armv7-eabihf--uclibc--stable-2022.08-1 \
arm-buildroot-linux-uclibcgnueabihf \
tar.bz2 \
9e4191ab996fdf5f4e8de7e4617c67cbf46127ca2754fca0ad45d60e393ace05 \
arm \
"-DCMAKE_BUILD_TYPE=Release"
loongarch64-non-fips-build-test:
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: loongarch64 Build/Test
run: tests/ci/run_cross_tests.sh loongarch64 loongarch64-unknown-linux-gnu "-DCMAKE_BUILD_TYPE=Release"
s390x-non-fips-build-test:
if: github.repository_owner == 'aws'
runs-on: ubuntu-24.04
steps:
- name: Install qemu
run: |
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
sudo apt-get -y install qemu-user qemu-user-binfmt
- uses: actions/checkout@v6
- name: s390x Build/Test
# The flag below is set to avoid the following error with GCC 11.4.0:
#
# /home/runner/work/aws-lc/aws-lc/crypto/pem/pem_lib.c:705:11: error: 'strncmp' of strings of length 1 and 9 and bound of 9 evaluates to nonzero [-Werror=string-compare]
# 705 | if (strncmp(buf, "-----END ", 9) == 0) {
# | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
env:
CFLAGS: "-Wno-string-compare"
run: tests/ci/run_cross_tests.sh s390x s390x-ibm-linux-gnu "-DCMAKE_BUILD_TYPE=Release"
ios-aarch64:
if: github.repository_owner == 'aws'
name: iOS aarch64 cross-platform build
runs-on: macos-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: ">=1.18"
- run: |
brew install llvm bash
- name: Setup Xcode
run: |
echo "Setting up Xcode environment..."
sudo xcodebuild -license accept || echo "License acceptance failed, continuing..."
xcodebuild -runFirstLaunch || echo "First launch setup failed, continuing..."
echo "Available Xcode versions:"
xcodebuild -version
echo "Available iOS simulator runtimes:"
xcrun simctl list runtimes | grep -i ios || echo "No iOS runtimes found via simctl"
- name: iOS Simulator Runner
timeout-minutes: 45
run: /opt/homebrew/bin/bash tests/ci/run_ios_sim_tests.sh
powerpc-old-glibc:
if: github.repository_owner == 'aws'
runs-on: ubuntu-latest
container:
image: ghcr.io/rust-lang/rust-ci:3afb64da05021f4e35690ff82852d9f0fa0028c30a5676cdb3844a697e863e7c1d3648c4243300ab8578d65d1f7a5bb727da01026e762b7e9ae6733339d8446b
env:
CC: /x-tools/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-gcc
CXX: /x-tools/powerpc-unknown-linux-gnu/bin/powerpc-unknown-linux-gnu-g++
steps:
- uses: actions/checkout@v6
- name: Perform Build
run: ./util/build_and_test.sh --build-only -G "Unix Makefiles" -DDISABLE_GO=ON -DDISABLE_PERL=ON -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_FIND_ROOT_PATH=/x-tools/powerpc-unknown-linux-gnu/powerpc-unknown-linux-gnu/