name: Build on: push: branches: - main workflow_dispatch: inputs: bake: type: string required: false description: JSON Object of inputs passed to the environment concurrency: group: ${{github.workflow}}-${{github.ref}} cancel-in-progress: true env: docker_id: ${{vars.DOCKER_ID}} inputs: ${{github.event.inputs}} jobs: systems: name: Base Environment uses: ./.github/workflows/bake.yml with: bake_targets: '["systems"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} buildsys: name: Build Environment uses: ./.github/workflows/bake.yml needs: [systems] with: bake_targets: '["buildsys"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} sources: name: Acquire Source uses: ./.github/workflows/bake.yml needs: [buildsys] with: bake_targets: '["sources"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} rocksdb: name: Build RocksDB uses: ./.github/workflows/bake.yml needs: [sources] with: bake_targets: '["rocksdb"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} deps: name: Build Dependencies uses: ./.github/workflows/bake.yml needs: [rocksdb] with: bake_targets: '["deps"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} clippy: name: Clippy Lints uses: ./.github/workflows/bake.yml needs: [deps] with: bake_targets: '["clippy"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} install: name: Install uses: ./.github/workflows/bake.yml needs: [deps] with: bake_targets: '["install"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} tests-unit: name: Unit Tests uses: ./.github/workflows/bake.yml needs: [deps] with: bake_targets: '["tests-unit"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} smoketest: name: Smoke Tests uses: ./.github/workflows/bake.yml needs: [install] with: bake_targets: '["tests-smoke"]' cargo_profiles: ${{vars.CARGO_PROFILES}} docker_id: ${{github.env.docker_id}} feat_sets: ${{vars.FEAT_SETS}} machines: ${{vars.MACHINES}} rust_targets: ${{vars.RUST_TARGETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.SYS_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}}