Fix YAML anchor ordering in CI pipeline
This commit is contained in:
172
.gitlab-ci.yml
172
.gitlab-ci.yml
@@ -201,92 +201,6 @@ release:
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
PYTEST_SCRIPT
|
PYTEST_SCRIPT
|
||||||
|
|
||||||
# Ephemeral test deployment in stage namespace (main branch only)
|
|
||||||
# Runs integration tests before promoting to long-running stage
|
|
||||||
deploy_test:
|
|
||||||
<<: *deploy_template
|
|
||||||
variables:
|
|
||||||
NAMESPACE: orch-stage-namespace
|
|
||||||
VALUES_FILE: helm/orchard/values-dev.yaml
|
|
||||||
BASE_URL: https://orchard-test.common.global.bsf.tools
|
|
||||||
before_script:
|
|
||||||
- kubectl config use-context esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
|
||||||
- *helm_setup
|
|
||||||
script:
|
|
||||||
- echo "Deploying ephemeral test environment"
|
|
||||||
- cd $CI_PROJECT_DIR
|
|
||||||
- |
|
|
||||||
helm upgrade --install orchard-test ./helm/orchard \
|
|
||||||
--namespace $NAMESPACE \
|
|
||||||
-f $VALUES_FILE \
|
|
||||||
--set image.tag=git.linux-amd64-$CI_COMMIT_SHA \
|
|
||||||
--set orchard.auth.adminPassword=$STAGE_ADMIN_PASSWORD \
|
|
||||||
--set ingress.hosts[0].host=orchard-test.common.global.bsf.tools \
|
|
||||||
--set ingress.tls[0].hosts[0]=orchard-test.common.global.bsf.tools \
|
|
||||||
--set ingress.tls[0].secretName=orchard-test-tls \
|
|
||||||
--set minioIngress.host=minio-test.common.global.bsf.tools \
|
|
||||||
--set minioIngress.tls.secretName=minio-test-tls \
|
|
||||||
--wait \
|
|
||||||
--atomic \
|
|
||||||
--timeout 10m
|
|
||||||
- kubectl rollout status deployment/orchard-test-server -n $NAMESPACE --timeout=10m
|
|
||||||
- *verify_deployment
|
|
||||||
environment:
|
|
||||||
name: test
|
|
||||||
url: https://orchard-test.common.global.bsf.tools
|
|
||||||
on_stop: cleanup_test
|
|
||||||
kubernetes:
|
|
||||||
agent: esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
||||||
when: on_success
|
|
||||||
|
|
||||||
# Cleanup ephemeral test deployment after integration tests
|
|
||||||
cleanup_test:
|
|
||||||
stage: deploy
|
|
||||||
needs: [integration_test_main]
|
|
||||||
image: deps.global.bsf.tools/registry-1.docker.io/alpine/k8s:1.29.12
|
|
||||||
timeout: 5m
|
|
||||||
variables:
|
|
||||||
NAMESPACE: orch-stage-namespace
|
|
||||||
GIT_STRATEGY: none
|
|
||||||
before_script:
|
|
||||||
- kubectl config use-context esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
|
||||||
script:
|
|
||||||
- echo "Cleaning up ephemeral test deployment orchard-test"
|
|
||||||
- helm uninstall orchard-test --namespace $NAMESPACE || true
|
|
||||||
environment:
|
|
||||||
name: test
|
|
||||||
action: stop
|
|
||||||
kubernetes:
|
|
||||||
agent: esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
||||||
when: on_success
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
# Integration tests for ephemeral test deployment (main branch)
|
|
||||||
# Runs against orchard-test before promoting to long-running stage
|
|
||||||
integration_test_main:
|
|
||||||
<<: *integration_test_template
|
|
||||||
needs: [deploy_test]
|
|
||||||
variables:
|
|
||||||
ORCHARD_TEST_URL: https://orchard-test.common.global.bsf.tools
|
|
||||||
ORCHARD_TEST_PASSWORD: $STAGE_ADMIN_PASSWORD
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
||||||
when: on_success
|
|
||||||
|
|
||||||
# Smoke test for long-running stage (after promotion)
|
|
||||||
smoke_test_stage:
|
|
||||||
<<: *smoke_test_template
|
|
||||||
needs: [deploy_stage]
|
|
||||||
variables:
|
|
||||||
ORCHARD_TEST_URL: $STAGE_URL
|
|
||||||
rules:
|
|
||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
||||||
when: on_success
|
|
||||||
|
|
||||||
# Integration tests for feature deployment (full suite)
|
# Integration tests for feature deployment (full suite)
|
||||||
# Uses DEV_ADMIN_PASSWORD CI variable (same as deploy_feature)
|
# Uses DEV_ADMIN_PASSWORD CI variable (same as deploy_feature)
|
||||||
integration_test_feature:
|
integration_test_feature:
|
||||||
@@ -397,6 +311,82 @@ frontend_tests:
|
|||||||
echo "Health check failed after 30 attempts"
|
echo "Health check failed after 30 attempts"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
|
# Ephemeral test deployment in stage namespace (main branch only)
|
||||||
|
# Runs integration tests before promoting to long-running stage
|
||||||
|
deploy_test:
|
||||||
|
<<: *deploy_template
|
||||||
|
variables:
|
||||||
|
NAMESPACE: orch-stage-namespace
|
||||||
|
VALUES_FILE: helm/orchard/values-dev.yaml
|
||||||
|
BASE_URL: https://orchard-test.common.global.bsf.tools
|
||||||
|
before_script:
|
||||||
|
- kubectl config use-context esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
||||||
|
- *helm_setup
|
||||||
|
script:
|
||||||
|
- echo "Deploying ephemeral test environment"
|
||||||
|
- cd $CI_PROJECT_DIR
|
||||||
|
- |
|
||||||
|
helm upgrade --install orchard-test ./helm/orchard \
|
||||||
|
--namespace $NAMESPACE \
|
||||||
|
-f $VALUES_FILE \
|
||||||
|
--set image.tag=git.linux-amd64-$CI_COMMIT_SHA \
|
||||||
|
--set orchard.auth.adminPassword=$STAGE_ADMIN_PASSWORD \
|
||||||
|
--set ingress.hosts[0].host=orchard-test.common.global.bsf.tools \
|
||||||
|
--set ingress.tls[0].hosts[0]=orchard-test.common.global.bsf.tools \
|
||||||
|
--set ingress.tls[0].secretName=orchard-test-tls \
|
||||||
|
--set minioIngress.host=minio-test.common.global.bsf.tools \
|
||||||
|
--set minioIngress.tls.secretName=minio-test-tls \
|
||||||
|
--wait \
|
||||||
|
--atomic \
|
||||||
|
--timeout 10m
|
||||||
|
- kubectl rollout status deployment/orchard-test-server -n $NAMESPACE --timeout=10m
|
||||||
|
- *verify_deployment
|
||||||
|
environment:
|
||||||
|
name: test
|
||||||
|
url: https://orchard-test.common.global.bsf.tools
|
||||||
|
on_stop: cleanup_test
|
||||||
|
kubernetes:
|
||||||
|
agent: esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
|
when: on_success
|
||||||
|
|
||||||
|
# Integration tests for ephemeral test deployment (main branch)
|
||||||
|
# Runs against orchard-test before promoting to long-running stage
|
||||||
|
integration_test_main:
|
||||||
|
<<: *integration_test_template
|
||||||
|
needs: [deploy_test]
|
||||||
|
variables:
|
||||||
|
ORCHARD_TEST_URL: https://orchard-test.common.global.bsf.tools
|
||||||
|
ORCHARD_TEST_PASSWORD: $STAGE_ADMIN_PASSWORD
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
|
when: on_success
|
||||||
|
|
||||||
|
# Cleanup ephemeral test deployment after integration tests
|
||||||
|
cleanup_test:
|
||||||
|
stage: deploy
|
||||||
|
needs: [integration_test_main]
|
||||||
|
image: deps.global.bsf.tools/registry-1.docker.io/alpine/k8s:1.29.12
|
||||||
|
timeout: 5m
|
||||||
|
variables:
|
||||||
|
NAMESPACE: orch-stage-namespace
|
||||||
|
GIT_STRATEGY: none
|
||||||
|
before_script:
|
||||||
|
- kubectl config use-context esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
||||||
|
script:
|
||||||
|
- echo "Cleaning up ephemeral test deployment orchard-test"
|
||||||
|
- helm uninstall orchard-test --namespace $NAMESPACE || true
|
||||||
|
environment:
|
||||||
|
name: test
|
||||||
|
action: stop
|
||||||
|
kubernetes:
|
||||||
|
agent: esv/bsf/bsf-integration/orchard/orchard-mvp:orchard-stage
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
|
when: on_success
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
# Deploy to long-running stage (main branch, after ephemeral tests pass)
|
# Deploy to long-running stage (main branch, after ephemeral tests pass)
|
||||||
deploy_stage:
|
deploy_stage:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
@@ -433,6 +423,16 @@ deploy_stage:
|
|||||||
- if: '$CI_COMMIT_BRANCH == "main"'
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
|
# Smoke test for long-running stage (after promotion)
|
||||||
|
smoke_test_stage:
|
||||||
|
<<: *smoke_test_template
|
||||||
|
needs: [deploy_stage]
|
||||||
|
variables:
|
||||||
|
ORCHARD_TEST_URL: $STAGE_URL
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
||||||
|
when: on_success
|
||||||
|
|
||||||
# Deploy feature branch to dev namespace
|
# Deploy feature branch to dev namespace
|
||||||
deploy_feature:
|
deploy_feature:
|
||||||
<<: *deploy_template
|
<<: *deploy_template
|
||||||
|
|||||||
Reference in New Issue
Block a user