daily-tests #3
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: daily-tests | |
permissions: | |
contents: read | |
on: | |
workflow_dispatch: | |
schedule: | |
# We run these tests on a daily basis (at a time slightly offset from the | |
# top of the hour), as their runtime is either too long for the usual per-PR | |
# CI, or because they rely on external 3rd party services that can be flaky. | |
- cron: '15 18 * * *' | |
jobs: | |
verifier: | |
name: "Platform Verifier (${{ matrix.os }})" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install nightly toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Install cargo-c (Ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-x86_64-unknown-linux-musl.tar.gz | |
run: | | |
curl -L $LINK/$CARGO_C_FILE | tar xz -C ~/.cargo/bin | |
- name: Install cargo-c (macOS) | |
if: matrix.os == 'macos-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-macos.zip | |
run: | | |
curl -L $LINK/$CARGO_C_FILE -o cargo-c-macos.zip | |
unzip cargo-c-macos.zip -d ~/.cargo/bin | |
- name: Install cargo-c (Windows) | |
if: matrix.os == 'windows-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-windows-msvc.zip | |
run: | | |
curl -L "$env:LINK/$env:CARGO_C_FILE" -o cargo-c-windows-msvc.zip | |
powershell -Command "Expand-Archive -Path cargo-c-windows-msvc.zip -DestinationPath $env:USERPROFILE\\.cargo\\bin -Force" | |
- name: Setup cmake build | |
run: | | |
cmake ${{ | |
matrix.os != 'windows-latest' && '-DCMAKE_BUILD_TYPE=Release \' || '' | |
}} ${{ | |
matrix.os == 'macos-latest' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=14.5' || '' | |
}} -S librustls -B build | |
- name: Run platform-verifier connect test | |
run: | | |
cmake --build build --target connect-test ${{ | |
matrix.os == 'windows-latest' && '--config Release' || '' | |
}} | |
ech: | |
name: "ECH (${{ matrix.os }})" | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
persist-credentials: false | |
- name: Install nightly toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Install cargo-c (Ubuntu) | |
if: matrix.os == 'ubuntu-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-x86_64-unknown-linux-musl.tar.gz | |
run: | | |
curl -L $LINK/$CARGO_C_FILE | tar xz -C ~/.cargo/bin | |
- name: Install cargo-c (macOS) | |
if: matrix.os == 'macos-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-macos.zip | |
run: | | |
curl -L $LINK/$CARGO_C_FILE -o cargo-c-macos.zip | |
unzip cargo-c-macos.zip -d ~/.cargo/bin | |
- name: Install cargo-c (Windows) | |
if: matrix.os == 'windows-latest' | |
env: | |
LINK: https://github.com/lu-zero/cargo-c/releases/latest/download | |
CARGO_C_FILE: cargo-c-windows-msvc.zip | |
run: | | |
curl -L "$env:LINK/$env:CARGO_C_FILE" -o cargo-c-windows-msvc.zip | |
powershell -Command "Expand-Archive -Path cargo-c-windows-msvc.zip -DestinationPath $env:USERPROFILE\\.cargo\\bin -Force" | |
- name: Setup cmake build | |
run: | | |
cmake ${{ | |
matrix.os != 'windows-latest' && '-DCMAKE_BUILD_TYPE=Release \' || '' | |
}} ${{ | |
matrix.os == 'macos-latest' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=14.5' || '' | |
}} -S librustls -B build | |
- name: Run ECH test | |
# NOTE: uses bash as the shell to allow for easy no-powershell tee/grep pipeline. | |
shell: bash | |
run: | | |
cmake --build build --target ech-test ${{ | |
matrix.os == 'windows-latest' && '--config Release' || '' | |
}} | tee ech-test.log | |
- name: Verify ECH status | |
shell: bash | |
run: | | |
grep 'sni=encrypted' ech-test.log |