Skip to content

Deploy App (Production) #10

Deploy App (Production)

Deploy App (Production) #10

name: Deploy App (Production)
on:
workflow_dispatch:
jobs:
deploy:
environment: production
runs-on: ubuntu-latest
env:
MIGRATIONS_SCRIPT_PATH: 'scripts/migrate.ts'
INIT_APP_ENDPOINT: 'https://leaderboards.5r.workers.dev/update'
steps:
- uses: actions/checkout@v2
- run: npm install
- name: Compile TypeScript
run: npx tsc --build tsconfig.json
- name: Run migrations
env:
POSTGRES_URL: ${{ secrets.POSTGRES_URL }}
run: npx tsx ${{ env.MIGRATIONS_SCRIPT_PATH }}
- name: Publish to Cloudflare Workers
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
environment: production
secrets: |
DISCORD_TOKEN
APPLICATION_ID
PUBLIC_KEY
CLIENT_SECRET
SENTRY_DSN
APP_KEY
POSTGRES_URL
env:
DISCORD_TOKEN: ${{ secrets.DISCORD_TOKEN }}
APPLICATION_ID: ${{ secrets.APPLICATION_ID }}
PUBLIC_KEY: ${{ secrets.PUBLIC_KEY }}
CLIENT_SECRET: ${{ secrets.CLIENT_SECRET }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
APP_KEY: ${{ secrets.APP_KEY }}
POSTGRES_URL: ${{ secrets.POSTGRES_URL }}
- name: Wait for deployment
run: sleep 3
- name: Initialize app
uses: fjogeleit/http-request-action@v1
with:
url: ${{ env.INIT_APP_ENDPOINT }}
method: POST
customHeaders: '{"Authorization":"${{ secrets.APP_KEY }}"}'