name: Deploy

permissions:
  id-token: write
  contents: read

concurrency: 
  group: prod
  cancel-in-progress: true

on:
  push:
    branches: [prod]


jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: prod
    steps:
      - uses: actions/checkout@v3

      - name: Configure Node
        uses: actions/setup-node@v3
        with:
          node-version: '16.x'
          cache: 'npm'

      - name: Install packages
        run: npm install -g serverless@3.25.1

      - name: Install serverless-wsgi
        run: serverless plugin install -n serverless-wsgi

      - name: Install serverless-python-requirements
        run: serverless plugin install -n serverless-python-requirements

      - name: Install serverless-plugin-common-excludes
        run: serverless plugin install -n serverless-plugin-common-excludes

      - name: Install serverless-plugin-include-dependencies
        run: serverless plugin install -n serverless-plugin-include-dependencies

      - name: Set up Python 3.8
        uses: actions/setup-python@v4
        with:
          python-version: "3.8"

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          role-to-assume: arn:aws:iam::001057775987:role/GithubActionsOIDC-vxtwitter-Role-ZYPHWRSFIP80
          role-duration-seconds: 900
          aws-region: us-east-1

      - name: Deploy
        run: serverless deploy --verbose
        env:
          VXTWITTER_LINK_CACHE: ${{ secrets.VXTWITTER_LINK_CACHE }}
          VXTWITTER_DATABASE: ${{ secrets.VXTWITTER_DATABASE }}
          VXTWITTER_METHOD: ${{ secrets.VXTWITTER_METHOD }}
          VXTWITTER_COLOR: ${{ secrets.VXTWITTER_COLOR }}
          VXTWITTER_APP_NAME: ${{ secrets.VXTWITTER_APP_NAME }}
          VXTWITTER_REPO: ${{ secrets.VXTWITTER_REPO }}
          VXTWITTER_URL: ${{ secrets.VXTWITTER_URL }}
          VXTWITTER_COMBINATION_METHOD: ${{ secrets.VXTWITTER_COMBINATION_METHOD }}
          VXTWITTER_GIF_CONVERT_API: ${{ secrets.VXTWITTER_GIF_CONVERT_API }}
          VXTWITTER_WORKAROUND_TOKENS: ${{ secrets.VXTWITTER_WORKAROUND_TOKENS }}
          VXTWITTER_PROXIES: ${{ secrets.VXTWITTER_PROXIES }}