Add pre-test stage reset to ensure known environment state

- Add reset_stage_pre job that runs after deploy_stage but before integration tests
- Extract reset script into reusable .reset_stage_template
- Ensures stage environment is in known state even if manually modified
- Pipeline flow: deploy_stage → reset_stage_pre → integration_test_stage → reset_stage
This commit is contained in:
Mondo Diaz
2026-01-23 22:31:58 +00:00
parent d4b2da3232
commit c319d8a55f
2 changed files with 23 additions and 12 deletions

View File

@@ -197,20 +197,10 @@ release:
PYTEST_SCRIPT
# Integration tests for stage deployment (full suite)
integration_test_stage:
<<: *integration_test_template
needs: [deploy_stage]
variables:
ORCHARD_TEST_URL: $STAGE_URL
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: on_success
# Reset stage environment after integration tests (clean slate for next run)
# Reset stage template - shared by pre and post test reset jobs
# Calls the /api/v1/admin/factory-reset endpoint which handles DB and S3 cleanup
reset_stage:
.reset_stage_template: &reset_stage_template
stage: deploy
needs: [integration_test_stage]
image: deps.global.bsf.tools/docker/python:3.12-slim
timeout: 5m
retry: 1 # Retry once on transient failures
@@ -284,6 +274,26 @@ reset_stage:
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: on_success
# Reset stage BEFORE integration tests (ensure known state)
reset_stage_pre:
<<: *reset_stage_template
needs: [deploy_stage]
# Integration tests for stage deployment (full suite)
integration_test_stage:
<<: *integration_test_template
needs: [reset_stage_pre]
variables:
ORCHARD_TEST_URL: $STAGE_URL
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
when: on_success
# Reset stage AFTER integration tests (clean slate for next run)
reset_stage:
<<: *reset_stage_template
needs: [integration_test_stage]
allow_failure: true # Don't fail pipeline if reset has issues
# Integration tests for feature deployment (full suite)