name: Bakery on: workflow_call: inputs: bake_targets: type: string required: false default: '["default"]' description: Bake targets cargo_profiles: type: string required: false default: '["test", "bench"]' description: Cargo profiles docker_id: type: string required: false description: Dockerhub acct/repo identity. feat_sets: type: string required: false default: '["none", "default", "all"]' description: Cargo feature groups machines: type: string required: false default: '["x86_64"]' description: Hardware platform vector rust_targets: type: string required: false default: '["x86_64-unknown-linux-gnu"]' description: Rust targets rust_toolchains: type: string required: false default: '["nightly", "stable"]' description: Rust toolchains sys_names: type: string required: false default: '["debian"]' description: System names sys_targets: type: string required: false default: '["x86_64-linux-gnu"]' description: System targets sys_versions: type: string required: false default: '["testing-slim"]' description: System versions env: docker_id: ${{inputs.docker_id}} jobs: task: name: Bake runs-on: ${{matrix.machine}} strategy: fail-fast: false matrix: bake_target: ${{fromJSON(inputs.bake_targets)}} cargo_profile: ${{fromJSON(inputs.cargo_profiles)}} feat_set: ${{fromJSON(inputs.feat_sets)}} machine: ${{fromJSON(inputs.machines)}} rust_target: ${{fromJSON(inputs.rust_targets)}} rust_toolchain: ${{fromJSON(inputs.rust_toolchains)}} sys_name: ${{fromJSON(inputs.sys_names)}} sys_target: ${{fromJSON(inputs.sys_targets)}} sys_version: ${{fromJSON(inputs.sys_versions)}} steps: - uses: actions/checkout@v3 - name: Task env: bake_target: ${{matrix.bake_target}} 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/bake.sh ${{matrix.bake_target}}