1414 description : ' Release specification YAML content'
1515 required : true
1616 type : string
17- source-stage :
18- description : ' Source stage (e.g., private, beta)'
19- required : true
20- type : string
21- target-stage :
22- description : ' Target stage (e.g., gamma, release)'
17+ environment :
18+ description : ' Deployment environment (gamma or production)'
2319 required : true
2420 type : string
2521 aws-region :
3834 value : ${{ jobs.step1-publish-images.outputs.run-identifier }}
3935
4036jobs :
37+ validate-release :
38+ runs-on : ubuntu-latest
39+ steps :
40+ - name : Validate release context
41+ run : |
42+ ENVIRONMENT="${{ inputs.environment }}"
43+
44+ # Validate environment input
45+ if [[ "${ENVIRONMENT}" != "gamma" && "${ENVIRONMENT}" != "production" ]]; then
46+ echo "❌ ERROR: Invalid environment '${ENVIRONMENT}'"
47+ echo "Valid environments: gamma, production"
48+ exit 1
49+ fi
50+
51+ echo "✅ Release context validation passed"
52+ echo "Ref: ${{ github.ref }}"
53+ echo "Environment: ${ENVIRONMENT}"
54+
4155 step1-publish-images :
56+ needs : [validate-release]
57+ environment : ${{ inputs.environment }}
4258 runs-on :
4359 - codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
4460 fleet:${{ inputs.runner-fleet }}
@@ -107,13 +123,16 @@ jobs:
107123 echo "RUN_IDENTIFIER=${RUN_IDENTIFIER}" >> ${GITHUB_ENV}
108124 echo "METADATA_FILE=${METADATA_FILE}" >> ${GITHUB_ENV}
109125 echo "REGION=${{ inputs.aws-region }}" >> ${GITHUB_ENV}
110- echo "SOURCE_STAGE=${{ inputs.source-stage }}" >> ${GITHUB_ENV}
111- echo "TARGET_STAGE=${{ inputs.target-stage }}" >> ${GITHUB_ENV}
126+ echo "SOURCE_STAGE=${{ vars.SOURCE_STAGE }}" >> ${GITHUB_ENV}
127+ echo "TARGET_STAGE=${{ vars.TARGET_STAGE }}" >> ${GITHUB_ENV}
112128
113129 echo "run-identifier=${RUN_IDENTIFIER}" >> ${GITHUB_OUTPUT}
114130 echo "metadata-file-name=release_metadata_${RUN_IDENTIFIER}.dict" >> ${GITHUB_OUTPUT}
115131
116132 echo "Generated run identifier: ${RUN_IDENTIFIER}"
133+ echo "Environment: ${{ inputs.environment }}"
134+ echo "Source stage: ${{ vars.SOURCE_STAGE }}"
135+ echo "Target stage: ${{ vars.TARGET_STAGE }}"
117136
118137 - name : Publish DLC Images
119138 id : publish
@@ -161,6 +180,7 @@ jobs:
161180
162181 step2-generate-info :
163182 needs : [step1-publish-images]
183+ environment : ${{ inputs.environment }}
164184 if : needs.step1-publish-images.outputs.images-published == '1'
165185 runs-on :
166186 - codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
@@ -189,8 +209,8 @@ jobs:
189209 echo "RUN_IDENTIFIER=${RUN_IDENTIFIER}" >> ${GITHUB_ENV}
190210 echo "METADATA_FILE=${METADATA_FILE}" >> ${GITHUB_ENV}
191211 echo "REGION=${{ inputs.aws-region }}" >> ${GITHUB_ENV}
192- echo "SOURCE_STAGE=${{ inputs.source-stage }}" >> ${GITHUB_ENV}
193- echo "TARGET_STAGE=${{ inputs.target-stage }}" >> ${GITHUB_ENV}
212+ echo "SOURCE_STAGE=${{ vars.SOURCE_STAGE }}" >> ${GITHUB_ENV}
213+ echo "TARGET_STAGE=${{ vars.TARGET_STAGE }}" >> ${GITHUB_ENV}
194214
195215 - name : Generate Release Information
196216 run : |
@@ -214,6 +234,7 @@ jobs:
214234
215235 step3-publish-notifications :
216236 needs : [step1-publish-images, step2-generate-info]
237+ environment : ${{ inputs.environment }}
217238 if : needs.step1-publish-images.outputs.images-published == '1'
218239 runs-on :
219240 - codebuild-runner-${{ github.run_id }}-${{ github.run_attempt }}
@@ -233,8 +254,8 @@ jobs:
233254 RUN_IDENTIFIER="${{ needs.step1-publish-images.outputs.run-identifier }}"
234255 echo "RUN_IDENTIFIER=${RUN_IDENTIFIER}" >> ${GITHUB_ENV}
235256 echo "REGION=${{ inputs.aws-region }}" >> ${GITHUB_ENV}
236- echo "SOURCE_STAGE=${{ inputs.source-stage }}" >> ${GITHUB_ENV}
237- echo "TARGET_STAGE=${{ inputs.target-stage }}" >> ${GITHUB_ENV}
257+ echo "SOURCE_STAGE=${{ vars.SOURCE_STAGE }}" >> ${GITHUB_ENV}
258+ echo "TARGET_STAGE=${{ vars.TARGET_STAGE }}" >> ${GITHUB_ENV}
238259
239260 - name : Publish Release Information
240261 run : |
@@ -248,4 +269,4 @@ jobs:
248269 echo ""
249270 echo "=========================================="
250271 echo "🎉 All release steps completed successfully!"
251- echo "=========================================="
272+ echo "=========================================="
0 commit comments