name: Main on: push: branches: - "**" pull_request: branches: - "**" workflow_dispatch: concurrency: group: ${{github.workflow}}-${{github.ref}} cancel-in-progress: true env: inputs: ${{github.event.inputs}} jobs: deps: if: ${{ vars.CI_VERBOSE_DEPS || false }} name: Deps uses: ./.github/workflows/deps.yml with: cargo_profiles: ${{vars.CARGO_PROFILES}} feat_sets: ${{vars.FEAT_SETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} rust_targets: ${{vars.RUST_TARGETS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.sys_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} machines: ${{vars.MACHINES}} lint: if: ${{ !failure() && !cancelled() }} name: Lint needs: [deps] uses: ./.github/workflows/lint.yml with: cargo_profiles: ${{vars.CARGO_PROFILES}} feat_sets: ${{vars.FEAT_SETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} rust_targets: ${{vars.RUST_TARGETS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.sys_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} machines: ${{vars.MACHINES}} test: if: ${{ !failure() && !cancelled() }} name: Test needs: [lint] uses: ./.github/workflows/test.yml with: cargo_profiles: ${{vars.CARGO_PROFILES}} feat_sets: ${{vars.FEAT_SETS}} rust_toolchains: ${{vars.RUST_TOOLCHAINS}} rust_targets: ${{vars.RUST_TARGETS}} sys_names: ${{vars.SYS_NAMES}} sys_targets: ${{vars.sys_TARGETS}} sys_versions: ${{vars.SYS_VERSIONS}} machines: ${{vars.MACHINES}} complement: ${{fromJSON(vars.COMPLEMENT || 'true')}} package: if: ${{ !failure() && !cancelled() }} name: Package needs: [lint] uses: ./.github/workflows/package.yml with: cargo_profiles: '["release"]' feat_sets: ${{vars.FEAT_SETS}} rust_toolchains: '["stable"]' sys_names: ${{vars.SYS_NAMES}} sys_versions: ${{vars.SYS_VERSIONS}} rust_targets: ${{vars.RUST_TARGETS}} sys_targets: ${{vars.sys_TARGETS}} machines: ${{vars.MACHINES}} publish: if: ${{ !failure() && !cancelled() }} name: Publish needs: [test, package] uses: ./.github/workflows/publish.yml with: cargo_profiles: '["release"]' feat_sets: ${{vars.FEAT_SETS}} rust_toolchains: '["stable"]' sys_names: ${{vars.SYS_NAMES}} sys_versions: ${{vars.SYS_VERSIONS}} rust_targets: ${{vars.RUST_TARGETS}} sys_targets: ${{vars.sys_TARGETS}} machines: ${{vars.MACHINES}} excludes: '[{"feat_set": "none"}]' docker_id: ${{vars.DOCKER_ID}} secrets: ghcr_token: ${{ secrets.GHCR_TOKEN }} dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }}