-
Notifications
You must be signed in to change notification settings - Fork 79
Lastest Stable Clang CI Job #825
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
c2fd7ec
10b7ba2
f20204e
150589e
7a8aab5
ff59cc9
4ad9f12
30a2856
898d847
45dbdcd
f5872a0
4706566
f374f35
2836fc3
ba25fcb
09ed1d3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| name: CI Slow | ||
|
|
||
| on: | ||
| push: | ||
| branches-ignore: | ||
| - 'main' | ||
| - 'docs' | ||
|
|
||
| env: | ||
| BUILDER_VERSION: v0.9.76 | ||
| BUILDER_SOURCE: releases | ||
| BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net | ||
| PACKAGE_NAME: aws-crt-cpp | ||
| LINUX_BASE_IMAGE: ubuntu-18-x64 | ||
| RUN: ${{ github.run_id }}-${{ github.run_number }} | ||
| CRT_CI_ROLE: ${{ secrets.CRT_CI_ROLE_ARN }} | ||
| AWS_DEFAULT_REGION: us-east-1 | ||
|
|
||
| permissions: | ||
| id-token: write # This is required for requesting the JWT | ||
|
|
||
| # cancel in-progress builds after a new commit | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| # Slow Alpine ARM builds that require QEMU emulation | ||
| linux-compat-alpine-arm: | ||
| runs-on: ubuntu-24.04 | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| image: | ||
| - alpine-3.16-armv6 | ||
| - alpine-3.16-armv7 | ||
| - alpine-3.16-arm64 | ||
| steps: | ||
| - uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| role-to-assume: ${{ env.CRT_CI_ROLE }} | ||
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | ||
| role-duration-seconds: 7200 # 2 hours | ||
| - name: Install qemu/docker | ||
| run: docker run --privileged --rm tonistiigi/binfmt --install all | ||
| - name: Build ${{ env.PACKAGE_NAME }} | ||
| run: | | ||
| 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 | ||
| ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} | ||
|
|
||
| # Raspberry Pi builds that require QEMU emulation | ||
| raspberry: | ||
| runs-on: ubuntu-24.04 # latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| image: | ||
| - raspbian-bullseye | ||
| steps: | ||
| - uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| role-to-assume: ${{ env.CRT_CI_ROLE }} | ||
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | ||
| role-duration-seconds: 7200 # 2 hours | ||
| # set arm arch | ||
| - name: Install qemu/docker | ||
| run: docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 | ||
| - name: Build ${{ env.PACKAGE_NAME }} | ||
| run: | | ||
| 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 | ||
| ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,8 +7,8 @@ on: | |
| - 'docs' | ||
|
|
||
| env: | ||
| BUILDER_VERSION: v0.9.76 | ||
| BUILDER_SOURCE: releases | ||
| BUILDER_VERSION: latest-clang | ||
| BUILDER_SOURCE: channels | ||
| BUILDER_HOST: https://d19elf31gohf1l.cloudfront.net | ||
| PACKAGE_NAME: aws-crt-cpp | ||
| LINUX_BASE_IMAGE: ubuntu-18-x64 | ||
|
|
@@ -47,6 +47,7 @@ jobs: | |
| # These linux-compat images need to run without -DUSE_OPENSSL because they do not have OpenSSL packages | ||
| # that are up-to-date (AL2) or don't provide OpenSSL development packages that is found in CMake (alpine) | ||
| # or are not able to connect on the socket even with the correct setup (manylinux2014) | ||
| # Note: Alpine ARM builds (alpine-3.16-armv6, alpine-3.16-armv7, alpine-3.16-arm64) are in ci-slow.yml | ||
| linux-compat: | ||
| runs-on: ubuntu-24.04 | ||
| strategy: | ||
|
|
@@ -58,17 +59,11 @@ jobs: | |
| - al2-x64 | ||
| - alpine-3.16-x64 | ||
| - alpine-3.16-x86 | ||
| - alpine-3.16-armv6 | ||
| - alpine-3.16-armv7 | ||
| - alpine-3.16-arm64 | ||
| steps: | ||
| - uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| role-to-assume: ${{ env.CRT_CI_ROLE }} | ||
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | ||
| role-duration-seconds: 7200 # 2 hours | ||
| - name: Install qemu/docker | ||
| run: docker run --privileged --rm tonistiigi/binfmt --install all | ||
| - name: Build ${{ env.PACKAGE_NAME }} | ||
| run: | | ||
| 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 | ||
|
|
@@ -107,27 +102,18 @@ jobs: | |
| 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 | ||
| ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }} --cmake-extra=-DUSE_OPENSSL=ON | ||
|
|
||
| raspberry: | ||
| # Test with the latest clang compiler using ubuntu-20-x64 base image | ||
| linux-clang-latest: | ||
| runs-on: ubuntu-24.04 # latest | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| image: | ||
| - raspbian-bullseye | ||
| steps: | ||
| - uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| role-to-assume: ${{ env.CRT_CI_ROLE }} | ||
| aws-region: ${{ env.AWS_DEFAULT_REGION }} | ||
| role-duration-seconds: 7200 # 2 hours | ||
| # set arm arch | ||
| - name: Install qemu/docker | ||
| run: docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 | ||
|
|
||
| - name: Build ${{ env.PACKAGE_NAME }} | ||
| run: | | ||
| 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 | ||
| ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ matrix.image }} build -p ${{ env.PACKAGE_NAME }} | ||
| ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-ubuntu-20-x64 build -p ${{ env.PACKAGE_NAME }} --compiler=clang-latest --cmake-extra=-DUSE_OPENSSL=ON | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why not add the latest to the same metrics above?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ubuntu-18-x64 can only find up to clang 19 while ubuntu-20-x64 finds clang 21. We can probably add clang-latest to ubuntu-18-x64 as well but I think we're moving away from testing middle versions beyond min and latest. |
||
|
|
||
| std-compat: | ||
| runs-on: ubuntu-24.04 # latest | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can move raspberry pi test to run on arm ubuntu instance. It's armv8 so that you don't need qemu.
like what we did for python here
Also the
alpine-3.16-arm64can benefit from the same setting.