Repository navigation
Check the notes API CRUD flow in CI #233
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: Deploy on LocalStack | |
| on: | |
| push: | |
| paths-ignore: | |
| - 'README.md' | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| schedule: | |
| # “At 00:00 on Sunday.” | |
| - cron: "0 0 * * 0" | |
| workflow_dispatch: | |
| jobs: | |
| cdk: | |
| name: Setup infrastructure using CDK | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 18 | |
| - name: Install lstk | |
| run: | | |
| npm install -g @localstack/lstk | |
| lstk setup aws --force --non-interactive | |
| - name: Start LocalStack | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| LOCALSTACK_DNS_ADDRESS: "0" | |
| LOCALSTACK_DEBUG: "1" | |
| run: lstk start | |
| - name: Install CDK | |
| run: | | |
| npm install -g aws-cdk | |
| lstk cdk --version | |
| - name: Install dependencies | |
| run: yarn | |
| - name: Prepare Lambda functions | |
| run: yarn build:backend | |
| - name: Bootstrap the infrastructure | |
| run: | | |
| yarn cdklocal bootstrap | |
| sleep 10 | |
| - name: Deploy the infrastructure | |
| uses: nick-fields/retry@v2 | |
| with: | |
| max_attempts: 3 | |
| retry_on: error | |
| timeout_seconds: 120 | |
| retry_wait_seconds: 10 | |
| command: | | |
| yarn cdklocal deploy | |
| - name: Run tests | |
| run: make test | |
| - 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 |