mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
86 lines
2.7 KiB
YAML
86 lines
2.7 KiB
YAML
stages:
|
|
- generate
|
|
- trigger
|
|
|
|
generate-pipeline:
|
|
stage: generate
|
|
image: alpine:latest
|
|
before_script:
|
|
- apk add --no-cache bash findutils
|
|
script:
|
|
- echo "=== DEBUG INFO ==="
|
|
- echo "CI_PIPELINE_SOURCE=$CI_PIPELINE_SOURCE"
|
|
- echo "CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH"
|
|
- echo "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME=$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME"
|
|
- pwd && ls -la
|
|
- echo "=== Finding terragrunt files ==="
|
|
- find live -name "terragrunt.hcl" -not -path "*/.terragrunt-cache/*" | head -20 || echo "No files found"
|
|
- echo "=== Generating pipeline ==="
|
|
- chmod +x ./scripts/generate-pipeline.sh
|
|
- ./scripts/generate-pipeline.sh
|
|
- echo "=== Generated pipeline content ==="
|
|
- cat .gitlab-ci.generated.yml
|
|
artifacts:
|
|
paths:
|
|
- .gitlab-ci.generated.yml
|
|
expire_in: 1 hour
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
- if: '$CI_COMMIT_BRANCH == "stage"'
|
|
- if: '$CI_COMMIT_BRANCH == "master"'
|
|
- if: '$CI_COMMIT_BRANCH =~ /^feature\/.*/'
|
|
|
|
# Stage environment
|
|
trigger-downstream-stage:
|
|
stage: trigger
|
|
needs:
|
|
- generate-pipeline
|
|
trigger:
|
|
include:
|
|
- artifact: .gitlab-ci.generated.yml
|
|
job: generate-pipeline
|
|
strategy: depend
|
|
variables:
|
|
TERRAFORM_IMAGE_NAME: cr.yandex/crp3ccidau046kdj8g9q/terraform/terragrunt:v9.10
|
|
YC_SERVICE_ACCOUNT_KEY_FILE: ${YC_SERVICE_ACCOUNT_KEY_FILE}
|
|
YC_CLOUD_ID: ${YC_CLOUD_ID}
|
|
YC_STAGE_FOLDER_ID: ${YC_STAGE_FOLDER_ID}
|
|
YC_PROD_FOLDER_ID: ${YC_PROD_FOLDER_ID}
|
|
YC_PREPROD_FOLDER_ID: ${YC_PREPROD_FOLDER_ID}
|
|
S3_ACCESS_KEY: ${S3_ACCESS_KEY}
|
|
S3_SECRET_KEY: ${S3_SECRET_KEY}
|
|
S3_STATE_BUCKET: ${S3_STATE_BUCKET}
|
|
AWS_ACCESS_KEY_ID: ${S3_ACCESS_KEY}
|
|
AWS_SECRET_ACCESS_KEY: ${S3_SECRET_KEY}
|
|
TARGET_ENV: "stage"
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
- if: '$CI_COMMIT_BRANCH == "stage"'
|
|
- if: '$CI_COMMIT_BRANCH =~ /^feature\/.*/'
|
|
|
|
# Prod environment
|
|
trigger-downstream-prod:
|
|
stage: trigger
|
|
needs:
|
|
- generate-pipeline
|
|
trigger:
|
|
include:
|
|
- artifact: .gitlab-ci.generated.yml
|
|
job: generate-pipeline
|
|
strategy: depend
|
|
variables:
|
|
TERRAFORM_IMAGE_NAME: cr.yandex/crp3ccidau046kdj8g9q/terraform/terragrunt:v9.10
|
|
YC_SERVICE_ACCOUNT_KEY_FILE: ${YC_PROD_SERVICE_ACCOUNT_KEY_FILE}
|
|
YC_CLOUD_ID: ${YC_CLOUD_ID}
|
|
YC_STAGE_FOLDER_ID: ${YC_STAGE_FOLDER_ID}
|
|
YC_PROD_FOLDER_ID: ${YC_PROD_FOLDER_ID}
|
|
YC_PREPROD_FOLDER_ID: ${YC_PREPROD_FOLDER_ID}
|
|
S3_ACCESS_KEY: ${S3_PROD_ACCESS_KEY}
|
|
S3_SECRET_KEY: ${S3_PROD_SECRET_KEY}
|
|
S3_STATE_BUCKET: ${S3_PROD_STATE_BUCKET}
|
|
AWS_ACCESS_KEY_ID: ${S3_PROD_ACCESS_KEY}
|
|
AWS_SECRET_ACCESS_KEY: ${S3_PROD_SECRET_KEY}
|
|
TARGET_ENV: "prod"
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "master"'
|