name: Testing on: workflow_call: inputs: cargo_profiles: type: string default: ${{vars.CARGO_PROFILES || '["test", "bench", "release"]'}} description: Cargo profiles feat_sets: type: string default: ${{vars.FEAT_SETS || '["none", "default", "all"]'}} description: Cargo feature groups machines: type: string default: ${{vars.MACHINES || '["x86_64"]'}} description: Hardware platform vector rust_targets: type: string default: ${{vars.RUST_TARGETS || '["x86_64-unknown-linux-gnu"]'}} description: Rust targets rust_toolchains: type: string default: ${{vars.RUST_TOOLCHAINS || '["nightly", "stable"]'}} description: Rust toolchains sys_names: type: string default: ${{vars.SYS_NAMES || '["debian"]'}} description: System names sys_targets: type: string default: ${{vars.SYS_TARGETS || '["x86_64-linux-gnu"]'}} description: System targets sys_versions: type: string default: ${{vars.SYS_VERSIONS || '["testing-slim"]'}} description: System versions jobs: unit: name: Unit uses: ./.github/workflows/bake.yml with: bake_targets: '["tests-unit"]' cargo_profiles: '["test", "bench"]' feat_sets: '["all"]' rust_toolchains: '["nightly"]' smoke: name: Smoke uses: ./.github/workflows/bake.yml with: bake_targets: '["tests-smoke"]' complement: name: Compliance needs: [smoke] runs-on: ${{matrix.machine}} #concurrency: ${{matrix.feat_set}}-${{matrix.sys_name}}-${{matrix.sys_target}}-${{matrix.sys_version}} concurrency: complement-cant-walk-and-chew-bubblegum strategy: fail-fast: false matrix: cargo_profile: ${{fromJSON('["test"]')}} feat_set: ${{fromJSON('["all"]')}} machine: ${{fromJSON(inputs.machines)}} rust_target: ${{fromJSON(inputs.rust_targets)}} rust_toolchain: ${{fromJSON('["nightly"]')}} sys_name: ${{fromJSON(inputs.sys_names)}} sys_target: ${{fromJSON(inputs.sys_targets)}} sys_version: ${{fromJSON(inputs.sys_versions)}} steps: - name: Complement env: cargo_profile: ${{matrix.cargo_profile}} feat_set: ${{matrix.feat_set}} machine: ${{matrix.machine}} rust_target: ${{matrix.rust_target}} rust_toolchain: ${{matrix.rust_toolchain}} sys_name: ${{matrix.sys_name}} sys_target: ${{matrix.sys_target}} sys_version: ${{matrix.sys_version}} run: | docker/complement.sh