From b83888c74afe00374a6b5c67365acb1eea189931 Mon Sep 17 00:00:00 2001 From: James Brunton Date: Wed, 10 Dec 2025 13:54:57 +0000 Subject: [PATCH] Make lite version of CI (#5188) # Description of Changes Add lite mode for CI which just runs the most important jobs for deployment. This won't be used in this repo, but allows other repos containing Stirling to easily disable jobs like desktop builds etc. if they're unnecessary, without needing to deal with conflicts in the files. They'll just need to set the repo variable `CI_PROFILE` to `lite`. We have an upstream repo that we'd like these changes for. --- .github/README.md | 12 ++++++++++++ .github/workflows/PR-Demo-Comment-with-react.yml | 1 + .github/workflows/multiOSReleases.yml | 1 + .github/workflows/push-docker-v2.yml | 1 + .github/workflows/push-docker.yml | 1 + .github/workflows/scorecards.yml | 1 + .github/workflows/sonarqube.yml | 1 + .github/workflows/stale.yml | 1 + .github/workflows/swagger.yml | 1 + .github/workflows/tauri-build.yml | 3 +++ .github/workflows/testdriver.yml | 1 + 11 files changed, 24 insertions(+) create mode 100644 .github/README.md diff --git a/.github/README.md b/.github/README.md new file mode 100644 index 000000000..97cb44086 --- /dev/null +++ b/.github/README.md @@ -0,0 +1,12 @@ +# CI Configuration + +## CI Lite Mode + +Skip non-essential CI workflows by setting a repository variable: + +**Settings → Secrets and variables → Actions → Variables → New repository variable** + +- Name: `CI_PROFILE` +- Value: `lite` + +Skips resource-intensive builds, releases, and OSS-specific workflows. Useful for deployment-only forks or faster CI runs. diff --git a/.github/workflows/PR-Demo-Comment-with-react.yml b/.github/workflows/PR-Demo-Comment-with-react.yml index bfde13275..c7aa66d4e 100644 --- a/.github/workflows/PR-Demo-Comment-with-react.yml +++ b/.github/workflows/PR-Demo-Comment-with-react.yml @@ -14,6 +14,7 @@ jobs: permissions: issues: write if: | + vars.CI_PROFILE != 'lite' && github.event.issue.pull_request && ( contains(github.event.comment.body, 'prdeploy') || diff --git a/.github/workflows/multiOSReleases.yml b/.github/workflows/multiOSReleases.yml index 636a34bc0..07c03b083 100644 --- a/.github/workflows/multiOSReleases.yml +++ b/.github/workflows/multiOSReleases.yml @@ -31,6 +31,7 @@ permissions: jobs: determine-matrix: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} diff --git a/.github/workflows/push-docker-v2.yml b/.github/workflows/push-docker-v2.yml index 5f2b70f50..061cf40ed 100644 --- a/.github/workflows/push-docker-v2.yml +++ b/.github/workflows/push-docker-v2.yml @@ -24,6 +24,7 @@ permissions: jobs: push: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-24.04-8core permissions: packages: write diff --git a/.github/workflows/push-docker.yml b/.github/workflows/push-docker.yml index 3f2a0c8d0..ecf3fdc95 100644 --- a/.github/workflows/push-docker.yml +++ b/.github/workflows/push-docker.yml @@ -24,6 +24,7 @@ permissions: jobs: push: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest permissions: packages: write diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index ca037b7c0..d83accd49 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -17,6 +17,7 @@ permissions: read-all jobs: analysis: + if: ${{ vars.CI_PROFILE != 'lite' }} name: Scorecard analysis runs-on: ubuntu-latest permissions: diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 146eb4b39..dd419b310 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -27,6 +27,7 @@ permissions: jobs: sonarqube: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest steps: - name: Harden Runner diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c3c0b110a..c53bb4a4b 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,6 +10,7 @@ permissions: jobs: stale: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest permissions: issues: write diff --git a/.github/workflows/swagger.yml b/.github/workflows/swagger.yml index 16f0a3088..6e9cdb435 100644 --- a/.github/workflows/swagger.yml +++ b/.github/workflows/swagger.yml @@ -23,6 +23,7 @@ permissions: jobs: push: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest steps: - name: Harden Runner diff --git a/.github/workflows/tauri-build.yml b/.github/workflows/tauri-build.yml index 4e153d519..d28683950 100644 --- a/.github/workflows/tauri-build.yml +++ b/.github/workflows/tauri-build.yml @@ -28,6 +28,7 @@ permissions: jobs: determine-matrix: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -636,6 +637,8 @@ jobs: if [ "${{ needs.build.result }}" = "success" ]; then echo "✅ All Tauri builds completed successfully!" echo "Artifacts are ready for distribution." + elif [ "${{ needs.build.result }}" = "skipped" ]; then + echo "⏭️ Tauri builds skipped (CI lite mode enabled)" else echo "❌ Some Tauri builds failed." echo "Please check the logs and fix any issues." diff --git a/.github/workflows/testdriver.yml b/.github/workflows/testdriver.yml index 828c84d62..12d5bc48d 100644 --- a/.github/workflows/testdriver.yml +++ b/.github/workflows/testdriver.yml @@ -21,6 +21,7 @@ permissions: jobs: deploy: + if: ${{ vars.CI_PROFILE != 'lite' }} runs-on: ubuntu-latest steps: - name: Harden Runner