ci: sgx ci/cd #979
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: ci | ||
on: | ||
push: | ||
branches: | ||
- dev | ||
tags: | ||
- "[v]?[0-9]+.[0-9]+.[0-9]+*" | ||
pull_request: | ||
branches: | ||
- dev | ||
env: | ||
CARGO_TERM_COLOR: always | ||
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | ||
# We need a higher number of parallel rayon tasks than the default (which is 4) | ||
# in order to prevent a deadlock, c.f. | ||
# - https://github.com/tlsnotary/tlsn/issues/548 | ||
# - https://github.com/privacy-scaling-explorations/mpz/issues/178 | ||
# 32 seems to be big enough for the foreseeable future | ||
RAYON_NUM_THREADS: 32 | ||
jobs: | ||
fmt: | ||
name: Check formatting | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
# We use nightly to support `imports_granularity` feature | ||
- name: Install nightly rust toolchain with rustfmt | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: nightly | ||
components: rustfmt | ||
- name: Use caching | ||
uses: Swatinem/[email protected] | ||
- name: Check formatting | ||
run: cargo +nightly fmt --check --all | ||
build-and-test: | ||
name: Build and test | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
- name: Install stable rust toolchain | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: stable | ||
components: clippy | ||
- name: Use caching | ||
uses: Swatinem/[email protected] | ||
- name: Clippy | ||
run: cargo clippy --all-features --all-targets -- -D warnings | ||
- name: Build | ||
run: cargo build --all-targets | ||
- name: Test | ||
run: cargo test | ||
build-wasm: | ||
name: Build and test wasm | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
- name: Install stable rust toolchain | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
targets: wasm32-unknown-unknown | ||
toolchain: stable | ||
- name: Install nightly rust toolchain | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
targets: wasm32-unknown-unknown,x86_64-unknown-linux-gnu | ||
toolchain: nightly | ||
components: rust-src | ||
- name: Install chromedriver | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y chromium-chromedriver | ||
- name: Install wasm-pack | ||
run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh | ||
- name: Use caching | ||
uses: Swatinem/[email protected] | ||
- name: Run tests | ||
run: | | ||
cd crates/wasm-test-runner | ||
./run.sh | ||
tests-integration: | ||
name: Run tests release build | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v4 | ||
- name: Install stable rust toolchain | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: stable | ||
- name: Use caching | ||
uses: Swatinem/[email protected] | ||
- name: Add custom DNS entry to /etc/hosts for notary TLS test | ||
run: echo "127.0.0.1 tlsnotaryserver.io" | sudo tee -a /etc/hosts | ||
- name: Run integration tests | ||
run: cargo test --profile tests-integration --workspace --exclude tlsn-tls-client --exclude tlsn-tls-core -- --include-ignored | ||
coverage: | ||
runs-on: ubuntu-latest | ||
env: | ||
CARGO_TERM_COLOR: always | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install stable rust toolchain | ||
uses: dtolnay/rust-toolchain@stable | ||
with: | ||
toolchain: stable | ||
- name: Install cargo-llvm-cov | ||
uses: taiki-e/install-action@cargo-llvm-cov | ||
- name: Generate code coverage | ||
run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info | ||
- name: Upload coverage to Codecov | ||
uses: codecov/codecov-action@v4 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
files: lcov.info | ||
fail_ci_if_error: true | ||
trigger-deployment: | ||
# doing this here due to feedback @ https://github.com/tlsnotary/tlsn/pull/631#issuecomment-2415806267 | ||
Check failure on line 143 in .github/workflows/ci.yml GitHub Actions / .github/workflows/ci.ymlInvalid workflow file
|
||
needs: tests-integration | ||
uses: ./.github/workflows/tee-cd.yml | ||
with: | ||
# what this is supposed to do -> $ref is the tag: e.g., v0.1.0-alpha.7; pass the $ref string to the cd script and update reverse proxy / deploy | ||
ref: ${{ github.ref_name }} |