diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7b6968f8..65b21cd6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -49,6 +49,7 @@ jobs: release_url: ${{steps.release.outputs.upload_url}} pages_url: 'https://matrix-construct.github.io/tuwunel/' rust_sdk_integration: ${{vars.RUST_SDK_INTEGRATION || 'true'}} + head_msg: ${{github.event.head_commit.message || github.event.workflow_run.head_commit.message}} strategy: fail-fast: true @@ -117,6 +118,8 @@ jobs: if: > !failure() && !cancelled() && !contains(github.ref, 'refs/tags/v') + && !contains(needs.init.outputs.head_msg, '[ci no lint]') + && !contains(needs.init.outputs.head_msg, '[ci only it]') name: Lint needs: [init] #needs: [init, deps] @@ -165,11 +168,13 @@ jobs: if: > !failure() && !cancelled() && !contains(github.ref, 'refs/tags/v') + && !contains(needs.init.outputs.head_msg, '[ci no test]') name: Test needs: [init, lint] uses: ./.github/workflows/test.yml with: + head_msg: ${{needs.init.outputs.head_msg}} build_nix: ${{fromJSON(needs.init.outputs.build_nix)}} rust_sdk_integration: ${{fromJSON(needs.init.outputs.rust_sdk_integration)}} complement: ${{fromJSON(needs.init.outputs.complement)}} @@ -218,6 +223,9 @@ jobs: if: > !failure() && !cancelled() && needs.init.outputs.package + && !contains(needs.init.outputs.head_msg, '[ci only it]') + && !contains(needs.init.outputs.head_msg, '[ci no build]') + && !contains(needs.init.outputs.head_msg, '[ci no package]') name: Package needs: [init, test] @@ -274,6 +282,10 @@ jobs: if: > !failure() && !cancelled() && needs.init.outputs.publish + && !contains(needs.init.outputs.head_msg, '[ci only it]') + && !contains(needs.init.outputs.head_msg, '[ci no build]') + && !contains(needs.init.outputs.head_msg, '[ci no package]') + && !contains(needs.init.outputs.head_msg, '[ci no publish]') name: Publish needs: [init, test, package] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 03cf6259..dc0336bb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,11 +49,14 @@ on: build_nix: type: boolean default: true + head_msg: + type: string jobs: docs: if: > - contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) + !contains(inputs.head_msg, '[ci only it]') + && contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) && contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0]) && contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0]) @@ -75,7 +78,8 @@ jobs: unit: if: > - contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) + !contains(inputs.head_msg, '[ci only it]') + && contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) && contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0]) && contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v1-linux-gnu"]')[0]) @@ -97,7 +101,8 @@ jobs: bench: if: > - contains(fromJSON(inputs.cargo_profiles), fromJSON('["bench"]')[0]) + !contains(inputs.head_msg, '[ci only it]') + && contains(fromJSON(inputs.cargo_profiles), fromJSON('["bench"]')[0]) && contains(fromJSON(inputs.feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["nightly"]')[0]) && contains(fromJSON(inputs.sys_targets), fromJSON('["x86_64-v3-linux-gnu"]')[0]) @@ -120,6 +125,8 @@ jobs: smoke: if: > !failure() && !cancelled() + && !contains(inputs.head_msg, '[ci only it]') + && !contains(inputs.head_msg, '[ci no build]') && inputs.cargo_profiles && inputs.machines @@ -192,6 +199,8 @@ jobs: nix: if: > !failure() && !cancelled() + && !contains(inputs.head_msg, '[ci only it]') + && !contains(inputs.head_msg, '[ci no build]') && contains(fromJSON(inputs.cargo_profiles), fromJSON('["release"]')[0]) && contains(fromJSON(inputs.complement_feat_sets), fromJSON('["all"]')[0]) && contains(fromJSON(inputs.rust_toolchains), fromJSON('["stable"]')[0]) @@ -216,6 +225,7 @@ jobs: rust-sdk-integration: if: > !failure() && !cancelled() + && !contains(inputs.head_msg, '[ci no build]') && inputs.rust_sdk_integration && contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) && contains(fromJSON(inputs.complement_feat_sets), fromJSON('["all"]')[0]) @@ -248,6 +258,7 @@ jobs: complement: if: > !failure() && !cancelled() + && !contains(inputs.head_msg, '[ci no build]') && inputs.complement && contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0]) && contains(fromJSON(inputs.complement_feat_sets), fromJSON('["all"]')[0]) @@ -273,6 +284,7 @@ jobs: compliance: if: > !failure() && !cancelled() + && !contains(inputs.head_msg, '[ci no build]') && inputs.complement && inputs.machines && contains(fromJSON(inputs.cargo_profiles), fromJSON('["test"]')[0])