name: Package on: workflow_call: inputs: cargo_profiles: type: string description: Cargo profiles feat_sets: type: string description: Cargo feature groups rust_toolchains: type: string description: Rust toolchains sys_names: type: string description: System names sys_versions: type: string description: System versions rust_targets: type: string description: Rust targets sys_targets: type: string description: System targets machines: type: string description: Hardware platform vector excludes: type: string default: '[]' description: Matrix exclusions includes: type: string default: '[]' description: Matrix inclusions jobs: book: if: > !failure() && !cancelled() && contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0]) && contains(fromJSON(inputs.feat_sets), fromJSON('["default"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0]) name: Book uses: ./.github/workflows/bake.yml with: bake_targets: '["book"]' cargo_profiles: '["release"]' feat_sets: '["default"]' rust_toolchains: '["stable"]' rust_targets: ${{inputs.rust_targets}} sys_names: ${{inputs.sys_names}} sys_targets: ${{inputs.sys_targets}} sys_versions: ${{inputs.sys_versions}} machines: ${{inputs.machines}} excludes: ${{inputs.excludes}} includes: ${{inputs.includes}} artifact: > { "book": {"dst": "book", "src": "/book", "pages": true}, } binary: if: > !failure() && !cancelled() name: Binaries uses: ./.github/workflows/bake.yml with: bake_targets: '["static"]' cargo_profiles: ${{inputs.cargo_profiles}} feat_sets: ${{inputs.feat_sets}} rust_toolchains: ${{inputs.rust_toolchains}} sys_names: ${{inputs.sys_names}} sys_versions: ${{inputs.sys_versions}} rust_targets: ${{inputs.rust_targets}} sys_targets: ${{inputs.sys_targets}} machines: ${{inputs.machines}} excludes: ${{inputs.excludes}} includes: ${{inputs.includes}} artifact: > { "static": {"dst": "tuwunel", "src": "/usr/bin/tuwunel" }, } container: if: > !failure() && !cancelled() name: Containers uses: ./.github/workflows/bake.yml with: bake_targets: '["docker", "oci"]' cargo_profiles: ${{inputs.cargo_profiles}} feat_sets: ${{inputs.feat_sets}} rust_toolchains: ${{inputs.rust_toolchains}} sys_names: ${{inputs.sys_names}} sys_versions: ${{inputs.sys_versions}} rust_targets: ${{inputs.rust_targets}} sys_targets: ${{inputs.sys_targets}} machines: ${{inputs.machines}} excludes: ${{inputs.excludes}} includes: ${{inputs.includes}} artifact: > { "docker": {"dst": "tuwunel-docker.tar.gz", "img": true }, "oci": {"dst": "tuwunel-oci.tar.zst", "runner": true } } pkgs: if: > !failure() && !cancelled() && contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0]) name: Distro Pkgs uses: ./.github/workflows/bake.yml with: bake_targets: '["pkg-deb", "pkg-rpm"]' cargo_profiles: '["release"]' feat_sets: '["all"]' rust_toolchains: '["stable"]' sys_names: ${{inputs.sys_names}} sys_versions: ${{inputs.sys_versions}} rust_targets: ${{inputs.rust_targets}} sys_targets: ${{inputs.sys_targets}} machines: ${{inputs.machines}} excludes: ${{inputs.excludes}} includes: ${{inputs.includes}} artifact: > { "pkg-deb": {"dst": "tuwunel_1.0.0-1_amd64.deb"}, "pkg-rpm": {"dst": "tuwunel-1.0.0-1.x86_64.rpm"} } check_pkgs: if: > !failure() && !cancelled() && contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0]) && false name: Check Pkgs needs: [pkgs] uses: ./.github/workflows/bake.yml with: bake_targets: '["pkg-deb-install", "pkg-rpm-install"]' cargo_profiles: '["release"]' feat_sets: '["all"]' rust_toolchains: '["stable"]' sys_names: ${{inputs.sys_names}} sys_versions: ${{inputs.sys_versions}} rust_targets: ${{inputs.rust_targets}} sys_targets: ${{inputs.sys_targets}} machines: ${{inputs.machines}} excludes: ${{inputs.excludes}} includes: ${{inputs.includes}}