diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 289f192..f11b687 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -5,10 +5,9 @@ on: push: branches: [ main ] jobs: - deploy: + deploy-image: # Ensure test job passes before pushing image. runs-on: ubuntu-22.04 - environment: production permissions: id-token: write # This is required for requesting the JWT contents: read @@ -52,11 +51,37 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + deploy-apprunner: + runs-on: ubuntu-22.04 + environment: production + needs: deploy-image + permissions: + id-token: write # This is required for requesting the JWT + contents: read + steps: + - uses: actions/checkout@v4 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: '18.x' + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 # More information on this action can be found below in the 'AWS Credentials' section + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} + role-session-name: ${{ secrets.AWS_ROLE_SESSION_NAME }} + aws-region: 'ap-southeast-1' + - name: Install CDK + run: | + npm install -g aws-cdk + cdk doctor + - name: Prepare App Runner + uses: bervProject/prepare-apprunner-action@0.1.3 + with: + arn: ${{ secrets.ARN }} + region: 'ap-southeast-1' - name: Deploy Infra working-directory: 'infra' run: | - python -m venv .venv - source .venv/bin/activate - pip install -r requirements.txt - cdk deploy TelegramBotInfraStack --parameters "imageTag=sha-${{ github.sha }}" --require-approval never + npm install + cdk deploy TmeStack --parameters "imageTag=sha-${{ github.sha }}" --require-approval never