fix the cloud pod tests workflow #7
This file contains hidden or 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: Create and Test Cloud Pods | |
| on: | |
| schedule: | |
| # At 00:00 on Saturday. | |
| - cron: "0 0 * * 6" | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| actions: read | |
| jobs: | |
| create-cloud-pod: | |
| name: Create Cloud Pods | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Nodejs | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: | | |
| make install | |
| - name: Start LocalStack | |
| uses: LocalStack/setup-localstack@main | |
| with: | |
| image-tag: 'latest' | |
| use-pro: 'true' | |
| configuration: LS_LOG=trace | |
| install-awslocal: 'true' | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| - name: Deploy the application | |
| env: | |
| AWS_ACCESS_KEY_ID: test | |
| AWS_SECRET_ACCESS_KEY: test | |
| AWS_DEFAULT_REGION: us-east-1 | |
| run: | | |
| make build | |
| make bootstrap | |
| make deploy | |
| - name: Create Cloud Pod | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| message="Cloud Pod created: sample-cdk-rds on $(date) with workflow run id: ${{ github.run_id }}" | |
| localstack pod save sample-cdk-rds --message "$message" | |
| - name: Show LocalStack Logs | |
| if: always() | |
| run: | | |
| localstack logs | |
| test-cloud-pod: | |
| name: Test Cloud Pod | |
| # needs: create-cloud-pod | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Nodejs | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| cache: 'npm' | |
| - name: Start LocalStack | |
| uses: LocalStack/setup-localstack@main | |
| with: | |
| use-pro: 'true' | |
| install-awslocal: 'true' | |
| env: | |
| DEBUG: 1 | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| - name: Load Cloud Pod | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| localstack pod load sample-cdk-rds | |
| - name: Install dependencies | |
| run: | | |
| npm install | |
| - name: Run Integration Tests | |
| run: | | |
| npm test | |
| - name: Show LocalStack Logs | |
| if: always() | |
| run: | | |
| localstack logs | |
| - name: Send a Slack notification | |
| if: failure() || github.event_name != 'pull_request' | |
| uses: ravsamhq/notify-slack-action@v2 | |
| with: | |
| status: ${{ job.status }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| notification_title: "{workflow} has {status_message}" | |
| message_format: "{emoji} *{workflow}* {status_message} in <{repo_url}|{repo}>" | |
| footer: "Linked Repo <{repo_url}|{repo}> | <{run_url}|View Workflow run>" | |
| notify_when: "failure" | |
| env: | |
| SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | |
| - name: Generate a Diagnostic Report | |
| if: failure() | |
| run: | | |
| curl -s localhost:4566/_localstack/diagnose | gzip -cf > diagnose.json.gz | |
| - name: Upload the Diagnostic Report | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: diagnose.json.gz | |
| path: ./diagnose.json.gz |