name: "deploy"

on: [push]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '18'

      - name: Install dependencies
        run: npm ci

      - name: Install Biome
        run: npm install --global --save-exact @biomejs/biome

      - name: Lint with Biome
        run: npx biome ci .

      - name: Lint styles
        run: npm run lint:styles

      - name: Check types
        run: npm run typecheck

      - name: Test production build
        run: npm run build

  email-templates:
    runs-on: ubuntu-latest
    name: Update templates on Mailgun
    if: github.event_name == 'push' && github.ref == 'refs/heads/feature/email-templates'
    continue-on-error: true
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: "Email confirmation template"
        uses: gyto/mailgun-template-action@v2
        with:
          html-file: "./templates/authorizer_email_confirmation.html"
          mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
          mailgun-domain: "discours.io"
          mailgun-template: "authorizer_email_confirmation"

      - name: "Password reset template"
        uses: gyto/mailgun-template-action@v2
        with:
          html-file: "./templates/authorizer_password_reset.html"
          mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
          mailgun-domain: "discours.io"
          mailgun-template: "authorizer_password_reset"

      - name: "First publication notification"
        uses: gyto/mailgun-template-action@v2
        with:
          html-file: "./templates/first_publication_notification.html"
          mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
          mailgun-domain: "discours.io"
          mailgun-template: "first_publication_notification"

      - name: "New comment notification template"
        uses: gyto/mailgun-template-action@v2
        with:
          html-file: "./templates/new_comment_notification.html"
          mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
          mailgun-domain: "discours.io"
          mailgun-template: "new_comment_notification"
