Skip to content

Commit 9ad52cf

Browse files
Switch CI to use roles (#494)
1 parent fc3eded commit 9ad52cf

File tree

2 files changed

+107
-41
lines changed

2 files changed

+107
-41
lines changed

.github/workflows/ci.yml

+106-40
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@ on:
66
- 'main'
77

88
env:
9-
BUILDER_VERSION: v0.9.64
9+
BUILDER_VERSION: v0.9.72
1010
BUILDER_SOURCE: releases
1111
BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net
1212
PACKAGE_NAME: aws-c-http
1313
LINUX_BASE_IMAGE: ubuntu-18-x64
1414
RUN: ${{ github.run_id }}-${{ github.run_number }}
15-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
16-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
17-
AWS_REGION: us-east-1
15+
CRT_CI_ROLE: ${{ secrets.CRT_CI_ROLE_ARN }}
16+
AWS_DEFAULT_REGION: us-east-1
17+
18+
permissions:
19+
id-token: write # This is required for requesting the JWT
1820

1921
jobs:
2022
linux-compat:
21-
runs-on: ubuntu-20.04 # latest
23+
runs-on: ubuntu-24.04 # latest
2224
strategy:
2325
matrix:
2426
image:
@@ -32,14 +34,18 @@ jobs:
3234
- rhel8-x64
3335

3436
steps:
35-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
37+
- uses: aws-actions/configure-aws-credentials@v4
38+
with:
39+
role-to-assume: ${{ env.CRT_CI_ROLE }}
40+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
41+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
3642
- name: Build ${{ env.PACKAGE_NAME }}
3743
run: |
3844
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
3945
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }}
4046
4147
linux-compiler-compat:
42-
runs-on: ubuntu-20.04 # latest
48+
runs-on: ubuntu-24.04 # latest
4349
strategy:
4450
matrix:
4551
compiler:
@@ -49,62 +55,90 @@ jobs:
4955
- clang-9
5056
- clang-10
5157
- clang-11
58+
- clang-15
59+
- clang-17
5260
- gcc-4.8
5361
- gcc-5
5462
- gcc-6
5563
- gcc-7
5664
- gcc-8
65+
- gcc-11
66+
# - gcc-13 TODO: figure out why its not passing
5767
steps:
58-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
59-
- name: Build ${{ env.PACKAGE_NAME }}
60-
run: |
61-
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
62-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }}
68+
- uses: aws-actions/configure-aws-credentials@v4
69+
with:
70+
role-to-assume: ${{ env.CRT_CI_ROLE }}
71+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
72+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
73+
- name: Build ${{ env.PACKAGE_NAME }}
74+
run: |
75+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
76+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }}
6377
6478
clang-sanitizers:
65-
runs-on: ubuntu-20.04 # latest
79+
runs-on: ubuntu-24.04 # latest
6680
strategy:
6781
matrix:
6882
sanitizers: [",thread", ",address,undefined"]
6983
steps:
70-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
71-
- name: Build ${{ env.PACKAGE_NAME }}
72-
run: |
73-
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
74-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-11 --cmake-extra=-DENABLE_SANITIZERS=ON --cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
84+
- uses: aws-actions/configure-aws-credentials@v4
85+
with:
86+
role-to-assume: ${{ env.CRT_CI_ROLE }}
87+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
88+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
89+
- name: Build ${{ env.PACKAGE_NAME }}
90+
run: |
91+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
92+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=clang-11 --cmake-extra=-DENABLE_SANITIZERS=ON --cmake-extra=-DSANITIZERS="${{ matrix.sanitizers }}"
7593
7694
linux-shared-libs:
77-
runs-on: ubuntu-20.04 # latest
95+
runs-on: ubuntu-24.04 # latest
7896
steps:
79-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
80-
- name: Build ${{ env.PACKAGE_NAME }}
81-
run: |
82-
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
83-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
97+
- uses: aws-actions/configure-aws-credentials@v4
98+
with:
99+
role-to-assume: ${{ env.CRT_CI_ROLE }}
100+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
101+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
102+
- name: Build ${{ env.PACKAGE_NAME }}
103+
run: |
104+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
105+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBUILD_SHARED_LIBS=ON
84106
85107
byo-crypto:
86-
runs-on: ubuntu-20.04 # latest
108+
runs-on: ubuntu-24.04 # latest
87109
steps:
88-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
89-
- name: Build ${{ env.PACKAGE_NAME }}
90-
run: |
91-
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
92-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBYO_CRYPTO=ON
110+
- uses: aws-actions/configure-aws-credentials@v4
111+
with:
112+
role-to-assume: ${{ env.CRT_CI_ROLE }}
113+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
114+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
115+
- name: Build ${{ env.PACKAGE_NAME }}
116+
run: |
117+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
118+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --cmake-extra=-DBYO_CRYPTO=ON
93119
94120
# Test downstream repos.
95121
# This should not be required because we can run into a chicken and egg problem if there is a change that needs some fix in a downstream repo.
96122
downstream:
97-
runs-on: ubuntu-20.04 # latest
123+
runs-on: ubuntu-24.04 # latest
98124
steps:
99-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
100-
- name: Build ${{ env.PACKAGE_NAME }}
101-
run: |
102-
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
103-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build downstream -p ${{ env.PACKAGE_NAME }}
125+
- uses: aws-actions/configure-aws-credentials@v4
126+
with:
127+
role-to-assume: ${{ env.CRT_CI_ROLE }}
128+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
129+
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
130+
- name: Build ${{ env.PACKAGE_NAME }}
131+
run: |
132+
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
133+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build downstream -p ${{ env.PACKAGE_NAME }}
104134
105135
windows:
106136
runs-on: windows-2022 # latest
107137
steps:
138+
- uses: aws-actions/configure-aws-credentials@v4
139+
with:
140+
role-to-assume: ${{ env.CRT_CI_ROLE }}
141+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
108142
- name: Build ${{ env.PACKAGE_NAME }} + consumers
109143
run: |
110144
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
@@ -116,6 +150,10 @@ jobs:
116150
matrix:
117151
arch: [x86, x64]
118152
steps:
153+
- uses: aws-actions/configure-aws-credentials@v4
154+
with:
155+
role-to-assume: ${{ env.CRT_CI_ROLE }}
156+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
119157
- name: Build ${{ env.PACKAGE_NAME }} + consumers
120158
run: |
121159
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
@@ -124,6 +162,10 @@ jobs:
124162
windows-shared-libs:
125163
runs-on: windows-2022 # latest
126164
steps:
165+
- uses: aws-actions/configure-aws-credentials@v4
166+
with:
167+
role-to-assume: ${{ env.CRT_CI_ROLE }}
168+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
127169
- name: Build ${{ env.PACKAGE_NAME }} + consumers
128170
run: |
129171
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
@@ -132,6 +174,10 @@ jobs:
132174
windows-app-verifier:
133175
runs-on: windows-2022 # latest
134176
steps:
177+
- uses: aws-actions/configure-aws-credentials@v4
178+
with:
179+
role-to-assume: ${{ env.CRT_CI_ROLE }}
180+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
135181
- name: Build ${{ env.PACKAGE_NAME }} + consumers
136182
run: |
137183
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
@@ -143,6 +189,10 @@ jobs:
143189
macos:
144190
runs-on: macos-14 # latest
145191
steps:
192+
- uses: aws-actions/configure-aws-credentials@v4
193+
with:
194+
role-to-assume: ${{ env.CRT_CI_ROLE }}
195+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
146196
- name: Build ${{ env.PACKAGE_NAME }} + consumers
147197
run: |
148198
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
@@ -152,17 +202,25 @@ jobs:
152202
macos-x64:
153203
runs-on: macos-14-large # latest
154204
steps:
205+
- uses: aws-actions/configure-aws-credentials@v4
206+
with:
207+
role-to-assume: ${{ env.CRT_CI_ROLE }}
208+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
155209
- name: Build ${{ env.PACKAGE_NAME }} + consumers
156210
run: |
157211
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder')"
158212
chmod a+x builder
159213
./builder build -p ${{ env.PACKAGE_NAME }}
160214
161215
localhost-test-linux:
162-
runs-on: ubuntu-20.04 # latest
216+
runs-on: ubuntu-24.04 # latest
163217
steps:
218+
- uses: aws-actions/configure-aws-credentials@v4
219+
with:
220+
role-to-assume: ${{ env.CRT_CI_ROLE }}
221+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
164222
- name: Checkout
165-
uses: actions/checkout@v3
223+
uses: actions/checkout@v4
166224
- name: Build and test
167225
run: |
168226
python3 -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"
@@ -171,8 +229,12 @@ jobs:
171229
localhost-test-macos:
172230
runs-on: macos-14 # latest
173231
steps:
232+
- uses: aws-actions/configure-aws-credentials@v4
233+
with:
234+
role-to-assume: ${{ env.CRT_CI_ROLE }}
235+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
174236
- name: Checkout
175-
uses: actions/checkout@v3
237+
uses: actions/checkout@v4
176238
- name: Build and test
177239
run: |
178240
python3 -m venv .venv
@@ -183,8 +245,12 @@ jobs:
183245
localhost-test-win:
184246
runs-on: windows-2022 # latest
185247
steps:
248+
- uses: aws-actions/configure-aws-credentials@v4
249+
with:
250+
role-to-assume: ${{ env.CRT_CI_ROLE }}
251+
aws-region: ${{ env.AWS_DEFAULT_REGION }}
186252
- name: Checkout
187-
uses: actions/checkout@v3
253+
uses: actions/checkout@v4
188254
- name: Build and test
189255
run: |
190256
python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')"

builder.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818
"pre_build_steps": ["local-server-setup"],
1919
"test_steps": [
2020
"aws-c-http-test",
21-
["{python}", "{source_dir}/integration-testing/http_client_test.py", "{install_dir}/bin/elasticurl{exe}"]
21+
["python3", "{source_dir}/integration-testing/http_client_test.py", "{install_dir}/bin/elasticurl{exe}"]
2222
]
2323
}

0 commit comments

Comments
 (0)