Add AWS PRM partner tag (aws-apn-id) (#58) #15
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 LocalStack Snapshots | |
| 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-snapshot: | |
| name: Create Snapshots | |
| runs-on: ubuntu-latest | |
| permissions: | |
| actions: write | |
| outputs: | |
| snapshot_artifact_name: snapshot-${{ github.run_id }} | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Dependencies | |
| run: | | |
| pip install -r requirements-dev.txt --upgrade | |
| - name: Install lstk | |
| run: | | |
| npm install -g @localstack/lstk | |
| - name: Start LocalStack | |
| env: | |
| LOCALSTACK_DEBUG: 1 | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| lstk start --type aws | |
| - name: Deploy Infrastructure (Example) | |
| run: | | |
| deployment/build-lambdas.sh && deployment/aws/deploy.sh | |
| - name: Export LocalStack Snapshot | |
| id: export_snapshot | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| echo "Exporting LocalStack snapshot..." | |
| lstk save snapshot.snapshot | |
| ls -la snapshot.snapshot # Verify the file exists | |
| echo "snapshot_artifact_name=snapshot-${{ github.run_id }}" >> $GITHUB_OUTPUT | |
| - name: Upload Snapshot Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ steps.export_snapshot.outputs.snapshot_artifact_name }} | |
| path: snapshot.snapshot | |
| retention-days: 1 | |
| test-snapshot: | |
| name: Test Snapshot | |
| needs: create-snapshot | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install Test Dependencies | |
| run: | | |
| pip install -r requirements-dev.txt --upgrade | |
| - name: Install lstk | |
| run: | | |
| npm install -g @localstack/lstk | |
| - name: Start LocalStack | |
| env: | |
| LOCALSTACK_DEBUG: 1 | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| lstk start --type aws | |
| - name: Download Snapshot Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: ${{ needs.create-snapshot.outputs.snapshot_artifact_name }} | |
| - name: Inject Snapshot | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| echo "Importing LocalStack snapshot from snapshot.snapshot..." | |
| ls -la # Check if download was successful | |
| lstk load snapshot.snapshot | |
| - name: Run Tests | |
| env: | |
| AWS_DEFAULT_REGION: us-east-1 | |
| AWS_REGION: us-east-1 | |
| AWS_ACCESS_KEY_ID: test | |
| AWS_SECRET_ACCESS_KEY: test | |
| run: | | |
| pytest tests | |
| - name: Show LocalStack Logs | |
| if: always() | |
| run: | | |
| lstk 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 |