Add libevent to GitHub integration CI #1710
Workflow file for this run
This file contains 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: General CI Tests | |
on: | |
push: | |
branches: [ '*' ] | |
pull_request: | |
branches: [ '*' ] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref_name }} | |
cancel-in-progress: true | |
env: | |
GOPROXY: https://proxy.golang.org,direct | |
SDE_MIRROR_URL: "https://downloadmirror.intel.com/813591/sde-external-9.33.0-2024-01-07-win.tar.xz" | |
SDE_VERSION_TAG: sde-external-9.33.0-2024-01-07-win | |
PACKAGE_NAME: aws-lc | |
# Used to enable ASAN test dimension. | |
AWSLC_NO_ASM_FIPS: 1 | |
jobs: | |
# MacOS and Windows GHA runners are more expensive, so we do a sanity test run before proceeding. | |
sanity-test-run: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Git clone the repository | |
uses: actions/checkout@v3 | |
- name: Sanity Test Run | |
run: | | |
sudo apt-get update | |
sudo apt-get install ninja-build | |
cmake -GNinja -Btest_build_dir | |
ninja -C test_build_dir run_tests | |
macOS-x86: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-14-large" | |
- "macos-13-large" | |
- "macos-12-large" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Build ${{ env.PACKAGE_NAME }} | |
run: | | |
./tests/ci/run_posix_tests.sh | |
macOS-x86-FIPS: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-14-large" | |
- "macos-13-large" | |
- "macos-12-large" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Build ${{ env.PACKAGE_NAME }} with FIPS mode | |
run: | | |
./tests/ci/run_fips_tests.sh | |
macOS-ARM: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-14-xlarge" | |
- "macos-13-xlarge" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Build ${{ env.PACKAGE_NAME }} | |
run: | | |
./tests/ci/run_posix_tests.sh | |
macOS-ARM-FIPS: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-14-xlarge" | |
- "macos-13-xlarge" | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Build ${{ env.PACKAGE_NAME }} with FIPS mode | |
run: | | |
./tests/ci/run_fips_tests.sh | |
MSVC-2019: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: aws-lc_windows-2019_8-core | |
steps: | |
- name: Git clone the repository | |
uses: actions/checkout@v3 | |
- name: Build Windows Dependencies | |
run: | | |
choco install ninja --version 1.9.0.20190208 -y && | |
choco install nasm --version 2.14.02 -y | |
- name: Run Windows Tests on MSVC-2019 | |
run: | | |
.\tests\ci\run_windows_tests.bat "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 | |
MSVC-2022: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
runs-on: aws-lc_windows-latest_8-core | |
steps: | |
- name: Git clone the repository | |
uses: actions/checkout@v3 | |
- name: Build Windows Dependencies | |
run: | | |
choco install ninja --version 1.9.0.20190208 -y && | |
choco install nasm --version 2.14.02 -y | |
- name: Run Windows Tests on MSVC-2022 | |
run: | | |
.\tests\ci\run_windows_tests.bat "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64 | |
MSVC-SDE-64-bit: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
# TODO: Update this to run on windows-2022. windows-2022 (Windows 11) has phased out support for older processors. | |
# https://learn.microsoft.com/en-us/windows-hardware/design/minimum/supported/windows-11-supported-intel-processors | |
runs-on: aws-lc_windows-2019_64-core | |
steps: | |
- name: Git clone the repository | |
uses: actions/checkout@v3 | |
- name: Build Windows Dependencies | |
run: | | |
choco install ninja --version 1.9.0.20190208 -y && | |
choco install nasm --version 2.14.02 -y | |
- name: Install SDE simulator | |
run: | | |
curl -SL --output temp.tar.xz ${{ env.SDE_MIRROR_URL }} | |
7z x temp.tar.xz | |
7z x temp.tar | |
ren ${{ env.SDE_VERSION_TAG }} windows-sde | |
del temp.tar.xz | |
del temp.tar | |
- name: Run Windows SDE Tests for 64 bit | |
run: | | |
$env:SDEROOT = "${PWD}\windows-sde" | |
echo ${env:SDEROOT} | |
.\tests\ci\run_windows_tests.bat "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 true | |
gcc-ubuntu-2004-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "10" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: gcc-${{ matrix.gccversion }} | |
cxx-compiler: g++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
gcc-ubuntu-2204-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "10" | |
- "11" | |
- "12" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: gcc-${{ matrix.gccversion }} | |
cxx-compiler: g++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
gcc-ubuntu-2404-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [ sanity-test-run ] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "12" | |
- "13" | |
- "14" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: gcc-${{ matrix.gccversion }} | |
cxx-compiler: g++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
clang-ubuntu-2004-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "10" | |
- "11" | |
- "12" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: clang-${{ matrix.gccversion }} | |
cxx-compiler: clang++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
clang-ubuntu-2204-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "13" | |
- "14" | |
- "15" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: clang-${{ matrix.gccversion }} | |
cxx-compiler: clang++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
clang-ubuntu-2404-sanity: | |
if: github.repository_owner == 'aws' | |
needs: [sanity-test-run] | |
strategy: | |
fail-fast: false | |
matrix: | |
gccversion: | |
- "16" | |
- "17" | |
- "18" | |
fips: | |
- "0" | |
- "1" | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-go@v4 | |
with: | |
go-version: '>=1.18' | |
- name: Setup CMake | |
uses: threeal/cmake-action@v1.3.0 | |
with: | |
generator: Ninja | |
c-compiler: clang-${{ matrix.gccversion }} | |
cxx-compiler: clang++-${{ matrix.gccversion }} | |
options: FIPS=${{ matrix.fips }} CMAKE_BUILD_TYPE=Release | |
- name: Build Project | |
run: cmake --build ./build --target all | |
- name: Run tests | |
run: cmake --build ./build --target run_tests | |
OpenBSD-x86-64: | |
needs: [sanity-test-run] | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
args: ["", "-f"] | |
version: ["7.4", "7.5"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: OpenBSD | |
uses: cross-platform-actions/action@v0.24.0 | |
env: | |
AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS: 5 | |
AWS_LC_GO_TEST_TIMEOUT: 120m | |
with: | |
environment_variables: AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS AWS_LC_GO_TEST_TIMEOUT | |
operating_system: openbsd | |
cpu_count: 4 | |
memory: 16G | |
architecture: x86-64 | |
version: '7.4' | |
shell: bash | |
run: | | |
set -x | |
sudo pkg_add cmake ninja go gmake | |
sudo pfctl -d | |
mkdir "${HOME}/bin" | |
ln -s /usr/local/bin/gmake "${HOME}/bin/make" | |
cat << EOF | sudo tee /etc/login.conf.d/unlimited | |
unlimited:\ | |
:datasize-cur=infinity:\ | |
:datasize-max=infinity:\ | |
:stacksize-cur=infinity:\ | |
:stacksize-max=infinity:\ | |
:memoryuse-cur=infinity:\ | |
:memoryuse-max=infinity:\ | |
:maxproc-cur=infinity:\ | |
:maxproc-max=infinity:\ | |
:openfiles-cur=infinity:\ | |
:openfiles-max=infinity:\ | |
:cpuuse-cur=infinity:\ | |
:cpuuse-max=infinity:\ | |
:priority=0:\ | |
:ignoretime: | |
EOF | |
sudo usermod -L unlimited runner | |
sudo su -c unlimited -s /usr/local/bin/bash -l runner <<EOF | |
set -x | |
export AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS=${AWS_LC_SSL_TEST_RUNNER_PEEK_ROUNDS} | |
export AWS_LC_GO_TEST_TIMEOUT=${AWS_LC_GO_TEST_TIMEOUT} | |
cd $(pwd) | |
export PATH="${HOME}/bin:${PATH}" | |
env | |
tests/ci/run_openbsd_tests.sh ${{ matrix.args }} | |
EOF | |
# TODO: Investigate sudden hanging tests and failures in GHA runners (P114059413) | |
# MSVC-SDE-32-bit: | |
# needs: [sanity-test-run] | |
# runs-on: aws-lc_windows-2019_64-core | |
# steps: | |
# - name: Git clone the repository | |
# uses: actions/checkout@v3 | |
# | |
# - name: Build Windows Dependencies | |
# run: | | |
# choco install ninja --version 1.9.0.20190208 -y && | |
# choco install nasm --version 2.14.02 -y | |
# | |
# - name: Install SDE simulator | |
# run: | | |
# curl -SL --output temp.tar.xz ${{ env.SDE_MIRROR_URL }} | |
# 7z x temp.tar.xz | |
# 7z x temp.tar | |
# ren ${{ env.SDE_VERSION_TAG }} windows-sde | |
# del temp.tar.xz | |
# del temp.tar | |
# | |
# - name: Run Windows SDE Tests for 32 bit | |
# run: | | |
# $env:SDEROOT = "${PWD}\windows-sde" | |
# echo ${env:SDEROOT} | |
# .\tests\ci\run_windows_tests.bat "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 true | |
# |