Outbound HTTP design spec #715
This file contains hidden or 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: "Run Format" | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| format: | |
| name: cargo fmt | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Cache cargo dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Retrieve Rust version | |
| id: rust-version | |
| run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Set up rust toolchain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: "clippy, rustfmt" | |
| toolchain: ${{ steps.rust-version.outputs.rust-version }} | |
| - name: Fetch dependencies (locked) | |
| run: cargo fetch --locked | |
| - name: Run cargo fmt | |
| run: cargo fmt --all -- --check | |
| - name: Run cargo clippy | |
| run: cargo clippy --workspace --all-targets --all-features -- -D warnings | |
| # Plan task 8.3 corollary: `examples/app-demo` is excluded | |
| # from the root workspace, so the fmt/clippy steps above | |
| # don't cover it. Run the same gates against it explicitly | |
| # — the app-demo workspace has the same strict-clippy | |
| # config and is the showcase a new user clones. | |
| - name: Run cargo fmt (app-demo workspace) | |
| working-directory: examples/app-demo | |
| run: cargo fmt --all -- --check | |
| - name: Run cargo clippy (app-demo workspace) | |
| working-directory: examples/app-demo | |
| run: cargo clippy --workspace --all-targets --all-features -- -D warnings | |
| adapter-wasm-clippy: | |
| name: ${{ matrix.adapter }} wasm clippy | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - adapter: cloudflare | |
| target: wasm32-unknown-unknown | |
| - adapter: fastly | |
| target: wasm32-wasip1 | |
| - adapter: spin | |
| target: wasm32-wasip2 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Cache Cargo dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ matrix.adapter }}-clippy-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-${{ matrix.adapter }}-clippy- | |
| - name: Retrieve Rust version | |
| id: rust-version | |
| run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Set up Rust tool chain | |
| uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ steps.rust-version.outputs.rust-version }} | |
| components: clippy | |
| - name: Add wasm target | |
| run: rustup target add ${{ matrix.target }} | |
| - name: Fetch dependencies (locked) | |
| run: cargo fetch --locked | |
| - name: Clippy ${{ matrix.adapter }} on ${{ matrix.target }} | |
| run: cargo clippy -p edgezero-adapter-${{ matrix.adapter }} --features ${{ matrix.adapter }} --target ${{ matrix.target }} --all-targets -- -D warnings | |
| format-docs: | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: docs | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Retrieve Node.js version | |
| id: node-version | |
| working-directory: . | |
| run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT | |
| shell: bash | |
| - name: Use Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ steps.node-version.outputs.node-version }} | |
| cache: "npm" | |
| cache-dependency-path: docs/package.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run ESLint | |
| run: npm run lint | |
| - name: Run Prettier (check) | |
| run: npm run format |