feat(proxy-wasm) invoke 'on_http_call_response' on dispatch failures #3622
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/*' | |
workflow_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: 26.0.0 | |
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: 26.0.0 | |
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: 26.0.0 | |
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.27.1.1 | |
runtime: wasmtime | |
wasmtime: 26.0.0 | |
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.27.1.1 | |
runtime: wasmtime | |
wasmtime: 26.0.0 | |
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: 26.0.0 | |
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.27.1.1-wasmtime-no_ipc-ssl-debug-no_hup-static,unit-openresty_1.27.1.1-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: 26.0.0 | |
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.27.1.1 | |
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.27.1.1] | |
runtime: [wasmtime, wasmer, v8] | |
wasmtime: [26.0.0] | |
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: [26.0.0] | |
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 }} |