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:
@@ -197,20 +197,10 @@ release:
|
|||||||
PYTEST_SCRIPT
|
PYTEST_SCRIPT
|
||||||
|
|
||||||
# Integration tests for stage deployment (full suite)
|
# Integration tests for stage deployment (full suite)
|
||||||
integration_test_stage:
|
# Reset stage template - shared by pre and post test reset jobs
|
||||||
<<: *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)
|
|
||||||
# Calls the /api/v1/admin/factory-reset endpoint which handles DB and S3 cleanup
|
# Calls the /api/v1/admin/factory-reset endpoint which handles DB and S3 cleanup
|
||||||
reset_stage:
|
.reset_stage_template: &reset_stage_template
|
||||||
stage: deploy
|
stage: deploy
|
||||||
needs: [integration_test_stage]
|
|
||||||
image: deps.global.bsf.tools/docker/python:3.12-slim
|
image: deps.global.bsf.tools/docker/python:3.12-slim
|
||||||
timeout: 5m
|
timeout: 5m
|
||||||
retry: 1 # Retry once on transient failures
|
retry: 1 # Retry once on transient failures
|
||||||
@@ -284,6 +274,26 @@ reset_stage:
|
|||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
when: on_success
|
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
|
allow_failure: true # Don't fail pipeline if reset has issues
|
||||||
|
|
||||||
# Integration tests for feature deployment (full suite)
|
# Integration tests for feature deployment (full suite)
|
||||||
|
|||||||
@@ -6,13 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
### Changed
|
||||||
|
- Added pre-test stage reset to ensure known environment state before integration tests (#54)
|
||||||
|
|
||||||
## [0.5.1] - 2026-01-23
|
## [0.5.1] - 2026-01-23
|
||||||
|
### Changed
|
||||||
|
- Simplified tag pipeline to only run deploy and smoke tests (image already built on main) (#54)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fixed production CI deployment namespace to use correct `orch-namespace` (#54)
|
- Fixed production CI deployment namespace to use correct `orch-namespace` (#54)
|
||||||
- Added gitleaks config to allowlist test files from secret scanning (#54)
|
- Added gitleaks config to allowlist test files from secret scanning (#54)
|
||||||
- Simplified tag pipeline to only run deploy and smoke tests (image already built on main) (#54)
|
|
||||||
|
|
||||||
## [0.5.0] - 2026-01-23
|
## [0.5.0] - 2026-01-23
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
Reference in New Issue
Block a user