Test - No changes - Drift mode #573
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test - No changes - Drift mode" | |
on: | |
workflow_dispatch: {} | |
env: | |
AWS_REGION: us-east-2 | |
# Permissions required for assuming AWS identity | |
permissions: | |
id-token: write | |
contents: read | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Setup | |
run: echo "Do setup" | |
test: | |
runs-on: ubuntu-latest | |
continue-on-error: true | |
needs: [setup] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
- shell: bash | |
run: | | |
mkdir -p ${{ runner.temp }} | |
cp ./tests/terraform/atmos.yaml ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__INFRACOST_ENABLED__#false#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__STORAGE_REGION__#${{ env.AWS_REGION }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__STORAGE_BUCKET__#${{ secrets.TERRAFORM_STATE_BUCKET }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__STORAGE_TABLE__#${{ secrets.TERRAFORM_STATE_TABLE }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__STORAGE_TABLE__#${{ secrets.TERRAFORM_STATE_TABLE }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__STORAGE_ROLE__#${{ secrets.TERRAFORM_STATE_ROLE }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__PLAN_ROLE__#${{ secrets.TERRAFORM_PLAN_ROLE }}#g' ${{ runner.temp }}/atmos.yaml | |
sed -i -e 's#__APPLY_ROLE__#${{ secrets.TERRAFORM_PLAN_ROLE }}#g' ${{ runner.temp }}/atmos.yaml | |
for file in ./tests/terraform/stacks/catalog/*.yaml; do | |
if [ -f "$file" ]; then | |
sed -i -e "s#__INFRACOST_ENABLED__#false#g" "$file" | |
sed -i -e "s#__STORAGE_REGION__#${{ env.AWS_REGION }}#g" "$file" | |
sed -i -e "s#__STORAGE_BUCKET__#${{ secrets.TERRAFORM_STATE_BUCKET }}#g" "$file" | |
sed -i -e "s#__STORAGE_TABLE__#${{ secrets.TERRAFORM_STATE_TABLE }}#g" "$file" | |
sed -i -e "s#__STORAGE_TABLE__#${{ secrets.TERRAFORM_STATE_TABLE }}#g" "$file" | |
sed -i -e "s#__STORAGE_ROLE__#${{ secrets.TERRAFORM_STATE_ROLE }}#g" "$file" | |
sed -i -e "s#__PLAN_ROLE__#${{ secrets.TERRAFORM_PLAN_ROLE }}#g" "$file" | |
sed -i -e "s#__APPLY_ROLE__#${{ secrets.TERRAFORM_PLAN_ROLE }}#g" "$file" | |
fi | |
done | |
- name: Plan Atmos Component | |
id: current | |
uses: ./ | |
with: | |
component: "foobar" | |
stack: "plat-ue2-sandbox" | |
sha: ${{ github.sha }} | |
drift-detection-mode-enabled: true | |
atmos-config-path: ${{ runner.temp }} | |
atmos-version: 1.99.0 | |
skip-checkout: true | |
outputs: | |
result: ${{ steps.current.outcome }} | |
summary: ${{ steps.current.outputs.summary }} | |
assert: | |
runs-on: ubuntu-latest | |
needs: [test] | |
steps: | |
- uses: nick-fields/assert-action@v2 | |
with: | |
expected: 'success' | |
actual: "${{ needs.test.outputs.result }}" | |
- name: Sleep for 30 seconds | |
uses: kibertoad/[email protected] | |
with: | |
time: '30s' | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: metadata | |
pattern: metadata-* | |
merge-multiple: true | |
- name: Display structure of downloaded files | |
id: metadata | |
run: | | |
set +e | |
test -d ./metadata | |
DIR_EXISTS=$? | |
echo "dir_exists=${DIR_EXISTS}" >> $GITHUB_OUTPUT | |
test -f ./metadata/plat-ue2-sandbox-foobar.metadata.json | |
FILE_EXISTS=$? | |
echo "file_exists=${FILE_EXISTS}" >> $GITHUB_OUTPUT | |
test -f ./metadata/issue-description-plat-ue2-sandbox-foobar.md | |
FILE_EXISTS=$? | |
echo "file_md_exists=${FILE_EXISTS}" >> $GITHUB_OUTPUT | |
echo "file_json=$(cat ./metadata/plat-ue2-sandbox-foobar.metadata.json | jq -Rs . )" >> $GITHUB_OUTPUT | |
- uses: nick-fields/assert-action@v2 | |
with: | |
actual: "${{ steps.metadata.outputs.dir_exists }}" | |
expected: "0" | |
- uses: nick-fields/assert-action@v2 | |
with: | |
actual: "${{ steps.metadata.outputs.file_exists }}" | |
expected: "0" | |
- uses: nick-fields/assert-action@v2 | |
with: | |
actual: "${{ steps.metadata.outputs.file_md_exists }}" | |
expected: "1" | |
- uses: nick-fields/assert-action@v2 | |
with: | |
actual: "${{ fromJSON(steps.metadata.outputs.file_json) }}" | |
expected: | | |
{ "stack": "plat-ue2-sandbox", "component": "foobar", "componentPath": "tests/terraform/components/terraform/foobar", "drifted": false, "error": false } | |
- uses: nick-fields/assert-action@v2 | |
with: | |
actual: "${{ fromJSON(needs.test.outputs.summary) }}" | |
expected: "" | |
teardown: | |
runs-on: ubuntu-latest | |
needs: [assert] | |
if: ${{ always() }} | |
steps: | |
- name: Tear down | |
run: echo "Do Tear down" |