diff --git a/.gitea/workflows/continuous_integration.yaml b/.gitea/workflows/continuous_integration.yaml index 5639319..7f3fcce 100644 --- a/.gitea/workflows/continuous_integration.yaml +++ b/.gitea/workflows/continuous_integration.yaml @@ -53,6 +53,13 @@ jobs: health_check_url_test: ${{ steps.set.outputs.health_check_url_test }} health_check_url_production: ${{ steps.set.outputs.health_check_url_production }} steps: + # Gitea has no reliable way to see a past run's workflow_dispatch input values from the UI, so + # this logs them explicitly — the only durable record of what was actually checked for a run. + - name: Log dispatch inputs + if: github.event_name == 'workflow_dispatch' + run: | + echo "Deploy to Test: ${{ github.event.inputs.deploy_test }}" + echo "Deploy to Production: ${{ github.event.inputs.deploy_production }}" - id: set run: | echo "artifact_name_test=${{ env.ARTIFACT_NAME_TEST }}" >> "$GITHUB_OUTPUT" @@ -283,9 +290,11 @@ jobs: # its side of the repo didn't change). Gitea Actions only implements always() from the GitHub # Actions status-check functions — success()/failure()/cancelled() are not supported — so each # gate's outcome is checked explicitly via needs..result instead: a skipped gate is fine, - # but a gate that actually ran and failed or was cancelled still blocks the publish. The final + # but a gate that actually ran and failed or was cancelled still blocks the publish. The # changes.outputs check makes sure there's something to publish at all: a run that touched - # neither backend nor frontend has nothing new to deploy. + # neither backend nor frontend has nothing new to deploy. The final line skips this build on a + # manual workflow_dispatch run that didn't check deploy_test — building and uploading a test + # artifact nobody is going to deploy is wasted work; push/PR runs are unaffected. if: | always() && needs.changes.result == 'success' && @@ -295,7 +304,8 @@ jobs: needs.frontend-build.result != 'failure' && needs.frontend-build.result != 'cancelled' && needs.frontend-test.result != 'failure' && needs.frontend-test.result != 'cancelled' && needs.frontend-lint.result != 'failure' && needs.frontend-lint.result != 'cancelled' && - (needs.changes.outputs.backend == 'true' || needs.changes.outputs.frontend == 'true') + (needs.changes.outputs.backend == 'true' || needs.changes.outputs.frontend == 'true') && + (github.event_name != 'workflow_dispatch' || github.event.inputs.deploy_test == 'true') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4