11name : ' Setup S3 Preview'
22description : ' Creates an S3 preview prefix by copying from the main prefix'
33inputs :
4- deployment-name :
5- description : ' Name of the deployment (used for ConfigMap name)'
6- required : true
4+ configmap-name :
5+ description : ' Name of the ConfigMap'
6+ required : false
7+ default : ' app-spring-deployment-env'
78 namespace :
89 description : ' Kubernetes namespace'
910 required : true
@@ -14,24 +15,66 @@ inputs:
1415 description : ' Name of the secret containing AWS credentials'
1516 required : false
1617 default : ' app-secrets'
18+ s3-bucket-key :
19+ description : ' Key for S3_BUCKET in ConfigMap'
20+ required : false
21+ default : ' S3_BUCKET'
22+ s3-endpoint-key :
23+ description : ' Key for S3_ENDPOINT in ConfigMap'
24+ required : false
25+ default : ' S3_ENDPOINT'
26+ aws-region-key :
27+ description : ' Key for AWS_REGION in ConfigMap'
28+ required : false
29+ default : ' AWS_REGION'
30+ aws-access-key-id-key :
31+ description : ' Key for AWS_ACCESS_KEY_ID in Secret'
32+ required : false
33+ default : ' AWS_ACCESS_KEY_ID'
34+ aws-secret-access-key-key :
35+ description : ' Key for AWS_SECRET_ACCESS_KEY in Secret'
36+ required : false
37+ default : ' AWS_SECRET_ACCESS_KEY'
38+ aws-session-token-key :
39+ description : ' Key for AWS_SESSION_TOKEN in Secret'
40+ required : false
41+ default : ' AWS_SESSION_TOKEN'
42+ base-prefix :
43+ description : ' Base prefix to copy from'
44+ required : false
45+ default : ' main'
1746
1847runs :
1948 using : " composite"
2049 steps :
2150 - name : Prepare setup-s3 job
51+ env :
52+ JOB_NAME : " prepare-s3-preview-${{ inputs.preview-number }}"
53+ CONFIGMAP_NAME : " ${{ inputs.configmap-name }}"
54+ SECRET_NAME : " ${{ inputs.secret-name }}"
55+ S3_BUCKET_KEY : " ${{ inputs.s3-bucket-key }}"
56+ S3_ENDPOINT_KEY : " ${{ inputs.s3-endpoint-key }}"
57+ AWS_REGION_KEY : " ${{ inputs.aws-region-key }}"
58+ AWS_ACCESS_KEY_ID_KEY : " ${{ inputs.aws-access-key-id-key }}"
59+ AWS_SECRET_ACCESS_KEY_KEY : " ${{ inputs.aws-secret-access-key-key }}"
60+ AWS_SESSION_TOKEN_KEY : " ${{ inputs.aws-session-token-key }}"
61+ PREVIEW_NUMBER : " ${{ inputs.preview-number }}"
62+ BASE_PREFIX : " ${{ inputs.base-prefix }}"
2263 run : |
23- JOB_NAME="prepare-s3-preview-${{ inputs.preview-number }}"
24- CONFIGMAP_NAME="${{ inputs.deployment-name }}-environments"
25-
26- # Create a temporary file for the manifest
27- cp ${{ github.action_path }}/job-template.yml job-setup-s3.yml
28-
29- # Replace placeholders
30- sed -i "s/JOB_NAME_PLACEHOLDER/$JOB_NAME/g" job-setup-s3.yml
31- sed -i "s/CONFIGMAP_NAME_PLACEHOLDER/$CONFIGMAP_NAME/g" job-setup-s3.yml
32- sed -i "s/SECRET_NAME_PLACEHOLDER/${{ inputs.secret-name }}/g" job-setup-s3.yml
33- sed -i "s/PREVIEW_NUMBER_PLACEHOLDER/${{ inputs.preview-number }}/g" job-setup-s3.yml
34-
64+ envsubst '
65+ $JOB_NAME
66+ $CONFIGMAP_NAME
67+ $SECRET_NAME
68+ $S3_BUCKET_KEY
69+ $S3_ENDPOINT_KEY
70+ $AWS_REGION_KEY
71+ $AWS_ACCESS_KEY_ID_KEY
72+ $AWS_SECRET_ACCESS_KEY_KEY
73+ $AWS_SESSION_TOKEN_KEY
74+ $PREVIEW_NUMBER
75+ $BASE_PREFIX
76+ ' < ${{ github.action_path }}/job-template.yml > job-setup-s3.yml
77+
3578 echo "Prepared job manifest: job-setup-s3.yml"
3679 shell : bash
3780
@@ -41,10 +84,10 @@ runs:
4184 shell : bash
4285
4386 - name : Wait for setup-s3 job to complete
87+ env :
88+ JOB_NAME : " prepare-s3-preview-${{ inputs.preview-number }}"
89+ NAMESPACE : " ${{ inputs.namespace }}"
4490 run : |
45- JOB_NAME="prepare-s3-preview-${{ inputs.preview-number }}"
46- NAMESPACE="${{ inputs.namespace }}"
47-
4891 echo "Waiting for job $JOB_NAME in namespace $NAMESPACE..."
4992
5093 if kubectl wait --namespace $NAMESPACE --for=condition=complete --timeout=10m job/$JOB_NAME; then
0 commit comments