Skip to content

Introduce Handle interface to block cache, avoid duplication in HTTP generator #135

Introduce Handle interface to block cache, avoid duplication in HTTP generator

Introduce Handle interface to block cache, avoid duplication in HTTP generator #135

name: Config Validation
on:
pull_request:
paths:
- 'examples/**/*.yaml'
- 'examples/**/*.yml'
- 'lading/**'
- '.github/workflows/config-validation.yml'
push:
branches:
- main
paths:
- 'examples/**/*.yaml'
- 'examples/**/*.yml'
- 'lading/**'
- '.github/workflows/config-validation.yml'
jobs:
generate-matrix:
name: Generate Config Matrix
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- id: set-matrix
run: |
# Find all YAML files in examples directory
configs=$(find examples -name "*.yaml" -o -name "*.yml" | sort | jq -R -s -c 'split("\n")[:-1]')
echo "matrix={\"config\":$configs}" >> $GITHUB_OUTPUT
echo "Found configs: $configs"
build:
name: Build lading binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions-rust-lang/setup-rust-toolchain@fb51252c7ba57d633bc668f941da052e410add48 # v1.13.0
with:
cache: true
- uses: taiki-e/install-action@3839ec485e8ef50e4a86e9cd116260b68a412c07 # v2.44.60
with:
tool: nextest@0.9.72
- name: Install Protobuf
uses: ./.github/actions/install-protobuf
- name: Install FUSE
uses: ./.github/actions/install-fuse
- name: Build lading binary
run: cargo build --bin=lading --all-features
- name: Upload binary artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: lading-binary
path: target/debug/lading
validate-configs:
name: Validate ${{ matrix.config }}
runs-on: ubuntu-latest
needs: [generate-matrix, build]
strategy:
fail-fast: false
matrix: ${{fromJson(needs.generate-matrix.outputs.matrix)}}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Download binary artifact
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: lading-binary
path: target/debug/
- name: Make binary executable
run: chmod +x target/debug/lading
- name: Validate config
run: |
echo "Validating: ${{ matrix.config }}"
./target/debug/lading config-check --config-path="${{ matrix.config }}"