revamp the application ci & makefile #30
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@v3 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 22 | |
| - name: Install Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.11' | |
| - name: Install CDK | |
| run: | | |
| npm install -g aws-cdk-local aws-cdk | |
| cdklocal --version | |
| - name: Install dependencies | |
| run: | | |
| make install | |
| - name: Start LocalStack | |
| env: | |
| LOCALSTACK_AUTH_TOKEN: ${{ secrets.LOCALSTACK_AUTH_TOKEN }} | |
| run: | | |
| export LOCALSTACK_AUTH_TOKEN=$LOCALSTACK_AUTH_TOKEN | |
| make start | |
| sleep 30 | |
| - name: Deploy the infrastructure | |
| run: | | |
| make deploy | |
| - name: Run tests | |
| run: | | |
| make test | |
| - name: Show LocalStack logs | |
| if: always() | |
| run: | | |
| make logs | |
| cat logs.txt | |
| - 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 |