wip #3527
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: CI | ||
on: | ||
push: | ||
branches: main | ||
paths-ignore: | ||
- '**/*.md' | ||
- '**/release.yml' | ||
- '**/ci-large.yml' | ||
- 'assets/release/Dockerfiles/*' | ||
#pull_request: | ||
# branches: '**' | ||
# paths-ignore: | ||
# - '**/*.md' | ||
# - '**/release.yml' | ||
# - '**/ci-large.yml' | ||
# - '**/release.sh' | ||
# - 'assets/release/Dockerfiles/*' | ||
flow_dispatch: | ||
defaults: | ||
run: | ||
shell: bash | ||
jobs: | ||
unit: | ||
name: 'Unit' | ||
#if: ${{ false }} | ||
#timeout-minutes: see job-unit-tests.yml | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
label: [""] | ||
os: [ubuntu-latest] | ||
cc: [gcc-12] | ||
ngx: [1.27.2] | ||
openresty: [""] | ||
runtime: [wasmer] | ||
wasmtime: [""] | ||
wasmer: [3.1.1] | ||
v8: [""] | ||
ipc: [no_ipc] | ||
ssl: [ssl] | ||
debug: [debug, no_debug] | ||
hup: [no_hup] | ||
module_type: [static] | ||
include: | ||
# Wasmtime | ||
- runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: hup | ||
# V8 | ||
- runtime: v8 | ||
v8: 12.0.267.17 | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: no_hup | ||
# wasm32-unknown-unknown | ||
- runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
ipc: no_ipc | ||
ssl: no_ssl | ||
debug: debug | ||
hup: no_hup | ||
wasm_target: wasm32-unknown-unknown | ||
# Old Nginx | ||
- label: old_nginx | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.21.6 | ||
runtime: wasmer | ||
wasmer: 3.1.1 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: no_hup | ||
# Nginx + dynamic ngx_wasmx_module + HUP | ||
- label: dynamic_nginx | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: hup | ||
module_type: dynamic | ||
# No SSL | ||
- os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
runtime: wasmer | ||
wasmer: 3.1.1 | ||
ipc: no_ipc | ||
ssl: no_ssl | ||
debug: no_debug | ||
hup: no_hup | ||
# OpenResty | ||
- label: openresty | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
openresty: 1.25.3.2 | ||
runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: no_hup | ||
# OpenResty + dynamic ngx_wasmx_module | ||
- label: dynamic_openresty | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
openresty: 1.25.3.2 | ||
runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
ipc: no_ipc | ||
ssl: ssl | ||
debug: debug | ||
hup: no_hup | ||
module_type: dynamic | ||
# IPC | ||
- label: ipc | ||
os: ubuntu-latest | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
ipc: ipc | ||
ssl: no_ssl | ||
debug: debug | ||
hup: no_hup | ||
uses: ./.github/workflows/job-unit-tests.yml | ||
with: | ||
os: ${{ matrix.os }} | ||
cc: ${{ matrix.cc }} | ||
ngx: ${{ matrix.ngx }} | ||
openresty: ${{ matrix.openresty }} | ||
runtime: ${{ matrix.runtime }} | ||
wasmtime: ${{ matrix.wasmtime }} | ||
wasmer: ${{ matrix.wasmer }} | ||
v8: ${{ matrix.v8 }} | ||
ipc: ${{ matrix.ipc }} | ||
ssl: ${{ matrix.ssl }} | ||
debug: ${{ matrix.debug }} | ||
hup: ${{ matrix.hup }} | ||
wasm_target: ${{ matrix.wasm_target }} | ||
module_type: ${{ matrix.module_type }} | ||
coverage: true | ||
secrets: inherit | ||
coveralls: | ||
name: 'Coveralls' | ||
needs: unit | ||
runs-on: ubuntu-latest | ||
timeout-minutes: ${{ fromJSON(vars.GHA_DEFAULT_TIMEOUT) }} | ||
steps: | ||
- name: Coveralls Finished | ||
if: ${{ !env.ACT }} | ||
uses: coverallsapp/github-action@v2 | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
parallel-finished: true | ||
carryforward: 'unit-ngx_1.27.2-wasmer-no_ipc-ssl-debug-no_hup-static,unit-ngx_1.27.2-wasmer-no_ipc-ssl-no_debug-no_hup-static,unit-ngx_1.27.2-wasmtime-no_ipc-ssl-debug-hup-static,unit-ngx_1.27.2-wasmtime-no_ipc-ssl-debug-hup-dynamic,unit-ngx_1.27.2-v8-no_ipc-ssl-debug-no_hup-static,unit-ngx_1.27.2-wasmtime-no_ipc-no_ssl-debug-no_hup-static-wasm32-unknown-unknown,unit-ngx_1.21.6-wasmer-no_ipc-ssl-debug-no_hup-static,unit-ngx_1.27.2-wasmer-no_ipc-no_ssl-no_debug-no_hup-static,unit-openresty_1.25.3.2-wasmtime-no_ipc-ssl-debug-no_hup-static,unit-openresty_1.25.3.2-wasmtime-no_ipc-ssl-debug-no_hup-dynamic,unit-ngx_1.27.2-wasmtime-ipc-no_ssl-debug-no_hup-static' | ||
valgrind: | ||
name: 'Valgrind' | ||
#if: ${{ false }} | ||
#timeout-minutes: see job-valgrind-tests.yml | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
label: ["full"] | ||
runtime: [wasmer] | ||
wasmer: [3.1.1] | ||
os: [ubuntu-22.04] | ||
cc: [gcc-12] | ||
ngx: [1.27.2] | ||
openresty: [""] | ||
wasmtime: [""] | ||
v8: [""] | ||
hup: [no_hup, hup] | ||
debug: [debug] | ||
include: | ||
# Wasmtime | ||
- runtime: wasmtime | ||
wasmtime: 25.0.1 | ||
os: ubuntu-22.04 | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
hup: no_hup | ||
debug: debug | ||
path: t/01-wasm | ||
# V8 | ||
- runtime: v8 | ||
v8: 12.0.267.17 | ||
os: ubuntu-22.04 | ||
cc: gcc-12 | ||
ngx: 1.27.2 | ||
debug: debug | ||
hup: no_hup | ||
path: t/01-wasm | ||
# OpenResty | ||
- label: openresty | ||
runtime: wasmer | ||
wasmer: 3.1.1 | ||
os: ubuntu-22.04 | ||
cc: gcc-12 | ||
openresty: 1.25.3.2 | ||
ngx: | ||
debug: debug | ||
hup: no_hup | ||
path: t/04-openresty | ||
uses: ./.github/workflows/job-valgrind-tests.yml | ||
with: | ||
os: ${{ matrix.os }} | ||
cc: ${{ matrix.cc }} | ||
ngx: ${{ matrix.ngx }} | ||
openresty: ${{ matrix.openresty }} | ||
runtime: ${{ matrix.runtime }} | ||
wasmtime: ${{ matrix.wasmtime }} | ||
wasmer: ${{ matrix.wasmer }} | ||
v8: ${{ matrix.v8 }} | ||
hup: ${{ matrix.hup }} | ||
debug: ${{ matrix.debug }} | ||
path: ${{ matrix.path }} | ||
coverage: true | ||
secrets: inherit | ||
lint: | ||
name: 'Lint' | ||
runs-on: ubuntu-latest | ||
timeout-minutes: ${{ fromJSON(vars.GHA_DEFAULT_TIMEOUT) }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: 'Setup cache - rustup toolchain' | ||
uses: actions/cache@v4 | ||
if: ${{ !env.ACT }} | ||
with: | ||
path: | | ||
~/.rustup/settings.toml | ||
~/.rustup/toolchains/* | ||
~/.rustup/update-hashes/* | ||
key: rust-toolchain-${{ runner.os }}-${{ hashFiles('.github/**/*.yml', '.github/**/*.sh', 'rust-toolchain') }} | ||
- uses: dtolnay/rust-toolchain@stable | ||
with: | ||
components: clippy | ||
- name: 'Setup cache - work/ dir' | ||
uses: actions/cache@v4 | ||
if: ${{ !env.ACT }} | ||
with: | ||
path: | | ||
work/downloads | ||
work/openssl | ||
key: lint-${{ runner.os }}-${{ hashFiles('util/**/*.sh', 'util/**/*.pl', 'util/**/*.awk', '.github/**/*.yml', '.github/**/*.sh', '.github/**/*.js', 'rust-toolchain', 'Makefile') }} | ||
- run: make setup | ||
- run: make lint | ||
- name: 'Rust lint' | ||
if: ${{ !env.ACT }} | ||
run: | | ||
cargo clippy --all-features --manifest-path lib/Cargo.toml | ||
cargo clippy --all-features --manifest-path t/lib/Cargo.toml | ||
- run: | | ||
if [[ $(make reindex 2>&1 | tee reindex.out | grep -c done) -gt 0 ]]; then | ||
cat reindex.out >&2 | ||
exit 1 | ||
fi | ||
analyzer: | ||
name: 'Clang analyzer' | ||
#timeout-minutes: see job-clang-analyzer.yml | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
cc: [clang-15] | ||
openresty: [1.25.3.2] | ||
runtime: [wasmtime, wasmer, v8] | ||
wasmtime: [25.0.1] | ||
wasmer: [3.1.1] | ||
v8: [12.0.267.17] | ||
ssl: [ssl] | ||
debug: [debug] | ||
include: | ||
# No SSL | ||
- os: ubuntu-latest | ||
cc: clang-15 | ||
ngx: 1.27.2 | ||
runtime: wasmer | ||
wasmer: 3.1.1 | ||
ssl: no_ssl | ||
debug: debug | ||
uses: ./.github/workflows/job-clang-analyzer.yml | ||
with: | ||
cc: ${{ matrix.cc }} | ||
ngx: ${{ matrix.ngx }} | ||
openresty: ${{ matrix.openresty }} | ||
runtime: ${{ matrix.runtime }} | ||
wasmtime: ${{ matrix.wasmtime }} | ||
wasmer: ${{ matrix.wasmer }} | ||
v8: ${{ matrix.v8 }} | ||
ssl: ${{ matrix.ssl }} | ||
debug: ${{ matrix.debug }} | ||
build: | ||
name: 'Build' | ||
#if: ${{ false }} | ||
#timeout-minutes: see job-build-tests.yml | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest] | ||
cc: [clang-15, gcc-12] | ||
ngx: [1.27.2] | ||
runtime: [wasmtime, wasmer, v8] | ||
wasmtime: [25.0.1] | ||
wasmer: [3.1.1] | ||
v8: [12.0.267.17] | ||
uses: ./.github/workflows/job-build-tests.yml | ||
with: | ||
os: ${{ matrix.os }} | ||
cc: ${{ matrix.cc }} | ||
ngx: ${{ matrix.ngx }} | ||
runtime: ${{ matrix.runtime }} | ||
wasmtime: ${{ matrix.wasmtime }} | ||
wasmer: ${{ matrix.wasmer }} | ||
v8: ${{ matrix.v8 }} |