Docker Bake Harness

Co-authored-by: Nineko <cnotsomark@gmail.com>
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-03-15 04:23:24 +00:00
parent d32bc5ed2a
commit c5de46e3e1
18 changed files with 2418 additions and 27 deletions

90
.github/workflows/bake.yml vendored Normal file
View File

@@ -0,0 +1,90 @@
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:
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}}