Support SSL_OP_IGNORE_UNEXPECTED_EOF option #10371
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/ |