1010
1111env :
1212 AWS_REGION : us-east-2
13- ATMOS_PLAN_DYNAMODB_TABLE : cptest-core-ue2-auto-gitops
13+ ATMOS_PLAN_DYNAMODB_TABLE : cptest-core-ue2-auto-gitops-plan-storage
14+ ATMOS_PLAN_COST_DYNAMODB_TABLE : cptest-core-ue2-auto-gitops-plan-cost-storage
1415 ATMOS_PLAN_S3_BUCKET : cptest-core-ue2-auto-gitops
16+ ATMOS_PLAN_BLOB_ACCOUNT_NAME : cptestcoreeusteststorage
17+ ATMOS_PLAN_BLOB_CONTAINER_NAME : github-action-terraform-plan-storage
18+ ATMOS_PLAN_COSMOS_CONTAINER_NAME : github-action-terraform-plan-storage
19+ ATMOS_PLAN_COSMOS_DATABASE_NAME : plans
20+ ATMOS_PLAN_COSMOS_ENDPOINT : " https://cptest-core-eus-test-cosmos.documents.azure.com:443/"
1521
1622# Permissions required for assuming AWS identity
1723permissions :
@@ -22,13 +28,15 @@ jobs:
2228 check-dist :
2329 name : " check-dist matches source"
2430 uses : cloudposse/github-actions-workflows/.github/workflows/ci-typescript-app-check-dist.yml@main
31+ with :
32+ node-version : 20.x
2533
2634 unit-test :
2735 name : " unit tests"
2836 runs-on : ubuntu-latest
2937 needs : check-dist
3038 steps :
31- - uses : actions/checkout@v3
39+ - uses : actions/checkout@v4
3240 with :
3341 ref : ${{ github.event.pull_request.head.ref }}
3442 - uses : actions/setup-node@v3
@@ -40,22 +48,22 @@ jobs:
4048 - name : run unit tests
4149 run : yarn test
4250
43- integration-test :
44- name : " integration tests"
51+ integration-test-aws :
52+ name : " integration tests aws "
4553 runs-on : ubuntu-latest
4654 needs : check-dist
4755 steps :
48- - uses : actions/checkout@v3
56+ - uses : actions/checkout@v4
4957 with :
5058 ref : ${{ github.event.pull_request.head.ref }}
5159
52- - uses : actions/setup-node@v3
60+ - uses : actions/setup-node@v4
5361 with :
5462 node-version-file : package.json
5563 cache : yarn
5664
5765 - name : Configure AWS Credentials
58- uses : aws-actions/configure-aws-credentials@v2
66+ uses : aws-actions/configure-aws-credentials@v4
5967 with :
6068 role-to-assume : ${{ secrets.AWS_ROLE_TO_ASSUME }}
6169 aws-region : ${{ env.AWS_REGION }}
7482 action : storePlan
7583 planPath : src/__fixtures__/mock.planfile
7684 component : demo
77- stack : ue1-sandbox
85+ stack : ue2-auto
7886 tableName : ${{ env.ATMOS_PLAN_DYNAMODB_TABLE }}
7987 bucketName : ${{ env.ATMOS_PLAN_S3_BUCKET }}
8088 env :
@@ -84,18 +92,97 @@ jobs:
8492 id : get-plan
8593 with :
8694 action : getPlan
87- planPath : ./test.planfile
95+ planPath : ./test-aws .planfile
8896 component : demo
89- stack : ue1-sandbox
97+ stack : ue2-auto
9098 tableName : ${{ env.ATMOS_PLAN_DYNAMODB_TABLE }}
9199 bucketName : ${{ env.ATMOS_PLAN_S3_BUCKET }}
92100 env :
93101 GITHUB_TOKEN : ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }}
94102
95- - name : Calculate SHA256 of planfile after retrieval
103+ - name : Calculate SHA256 of aws planfile after retrieval
104+ id : after-get-checksum
105+ run : |
106+ checksum=$(shasum -a 256 ./test-aws.planfile | cut -d ' ' -f 1)
107+ echo "$checksum"
108+ echo "checksum=$checksum" >>$GITHUB_OUTPUT
109+
110+ - name : Compare Before and After Checksums (AWS)
111+ run : |
112+ if [ "${{ steps.before-store-checksum.outputs.checksum }}" != "${{ steps.after-get-checksum.outputs.checksum }}" ]; then
113+ echo "Checksums do not match"
114+ exit 1
115+ fi
116+
117+ - name : Compare Before and After Checksums (AZURE)
118+ run : |
119+ if [ "${{ steps.before-store-checksum.outputs.checksum }}" != "${{ steps.after-get-checksum.outputs.checksum }}" ]; then
120+ echo "Checksums do not match"
121+ exit 1
122+ fi
123+
124+ integration-test-azure :
125+ name : " integration test azure"
126+ runs-on : ubuntu-latest
127+ needs : check-dist
128+ steps :
129+ - uses : actions/checkout@v4
130+ with :
131+ ref : ${{ github.event.pull_request.head.ref }}
132+
133+ - uses : actions/setup-node@v4
134+ with :
135+ node-version-file : package.json
136+ cache : yarn
137+
138+ - name : Configure Azure Credentials
139+ uses : azure/login@v1
140+ with :
141+ client-id : ${{ secrets.AZURE_CLIENT_ID }}
142+ tenant-id : ${{ secrets.AZURE_TENANT_ID }}
143+ subscription-id : ${{ secrets.AZURE_SUBSCRIPTION_ID }}
144+
145+ - name : Calculate SHA256 of planfile before storage
146+ id : before-store-checksum
147+ run : |
148+ checksum=$(shasum -a 256 src/__fixtures__/mock.planfile | cut -d ' ' -f 1)
149+ echo "$checksum"
150+ echo "checksum=$checksum" >>$GITHUB_OUTPUT
151+
152+ - uses : ./
153+ id : store-plan
154+ with :
155+ blobAccountName : ${{ env.ATMOS_PLAN_BLOB_ACCOUNT_NAME }}
156+ blobContainerName : ${{ env.ATMOS_PLAN_BLOB_CONTAINER_NAME }}
157+ metadataRepositoryType : cosmos
158+ planRepositoryType : azureblob
159+ cosmosContainerName : ${{ env.ATMOS_PLAN_COSMOS_CONTAINER_NAME }}
160+ cosmosDatabaseName : ${{ env.ATMOS_PLAN_COSMOS_DATABASE_NAME }}
161+ cosmosEndpoint : ${{ env.ATMOS_PLAN_COSMOS_ENDPOINT }}
162+ action : storePlan
163+ planPath : src/__fixtures__/mock.planfile
164+ component : demo
165+ stack : eus-demo
166+
167+ - uses : ./
168+ id : get-plan
169+ with :
170+ blobAccountName : ${{ env.ATMOS_PLAN_BLOB_ACCOUNT_NAME }}
171+ blobContainerName : ${{ env.ATMOS_PLAN_BLOB_CONTAINER_NAME }}
172+ metadataRepositoryType : cosmos
173+ planRepositoryType : azureblob
174+ cosmosContainerName : ${{ env.ATMOS_PLAN_COSMOS_CONTAINER_NAME }}
175+ cosmosDatabaseName : ${{ env.ATMOS_PLAN_COSMOS_DATABASE_NAME }}
176+ cosmosEndpoint : ${{ env.ATMOS_PLAN_COSMOS_ENDPOINT }}
177+ action : getPlan
178+ planPath : ./test-azure.planfile
179+ component : demo
180+ stack : eus-demo
181+
182+ - name : Calculate SHA256 of aws planfile after retrieval
96183 id : after-get-checksum
97184 run : |
98- checksum=$(shasum -a 256 ./test.planfile | cut -d ' ' -f 1)
185+ checksum=$(shasum -a 256 ./test-azure .planfile | cut -d ' ' -f 1)
99186 echo "$checksum"
100187 echo "checksum=$checksum" >>$GITHUB_OUTPUT
101188
0 commit comments