diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b9d065a02..8dbd7f03a 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -16,13 +16,13 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: 12 + node-version: 18 - run: yarn install - run: yarn build env: NODE_ENV: production - name: Publish - uses: cloudflare/wrangler-action@1.3.0 + uses: cloudflare/wrangler-action@v3.4.1 with: apiToken: ${{ secrets.CF_API_TOKEN }} preCommands: | @@ -48,3 +48,11 @@ jobs: SECRET_TELEGRAM_API_TOKEN: ${{secrets.SECRET_TELEGRAM_API_TOKEN}} SECRET_TELEGRAM_CHAT_ID: ${{secrets.SECRET_TELEGRAM_CHAT_ID}} SECRET_DISCORD_WEBHOOK_URL: ${{secrets.SECRET_DISCORD_WEBHOOK_URL}} + + + + + + + + diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..0403d243a --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,50 @@ +name: Deploy + +on: + push: + branches: + - main + repository_dispatch: + schedule: + - cron: '0 0 1 * *' + +jobs: + deploy: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 18 + - run: yarn install + - run: yarn build + env: + NODE_ENV: production + - name: Publish + uses: cloudflare/wrangler-action@1.3.0 + with: + apiToken: ${{ secrets.CF_API_TOKEN }} + preCommands: | + wrangler kv:namespace create KV_STATUS_PAGE || true + export KV_NAMESPACE_ID=$(npx @cloudflare/wrangler@1 kv:namespace list 2> >(tee stderr.log >&2) | head -1 | node -pe "JSON.parse(fs.readFileSync('/dev/stdin').toString()).find(kv => kv.title.includes('KV_STATUS_PAGE')).id") + echo "[env.production]" >> wrangler.toml + echo "kv_namespaces = [{binding=\"KV_STATUS_PAGE\", id=\"${KV_NAMESPACE_ID}\"}]" >> wrangler.toml + [ -z "$SECRET_SLACK_WEBHOOK_URL" ] && echo "Secret SECRET_SLACK_WEBHOOK_URL not set, creating dummy one..." && SECRET_SLACK_WEBHOOK_URL="default-gh-action-secret" || true + [ -z "$SECRET_TELEGRAM_API_TOKEN" ] && echo "Secret SECRET_TELEGRAM_API_TOKEN not set, creating dummy one..." && SECRET_TELEGRAM_API_TOKEN="default-gh-action-secret" || true + [ -z "$SECRET_TELEGRAM_CHAT_ID" ] && echo "Secret SECRET_TELEGRAM_CHAT_ID not set, creating dummy one..." && SECRET_TELEGRAM_CHAT_ID="default-gh-action-secret" || true + [ -z "$SECRET_DISCORD_WEBHOOK_URL" ] && echo "Secret SECRET_DISCORD_WEBHOOK_URL not set, creating dummy one..." && SECRET_DISCORD_WEBHOOK_URL="default-gh-action-secret" || true + postCommands: | + yarn kv-gc + secrets: | + SECRET_SLACK_WEBHOOK_URL + SECRET_TELEGRAM_API_TOKEN + SECRET_TELEGRAM_CHAT_ID + SECRET_DISCORD_WEBHOOK_URL + environment: production + env: + CF_ACCOUNT_ID: ${{ secrets.CF_ACCOUNT_ID }} + SECRET_SLACK_WEBHOOK_URL: ${{secrets.SECRET_SLACK_WEBHOOK_URL}} + SECRET_TELEGRAM_API_TOKEN: ${{secrets.SECRET_TELEGRAM_API_TOKEN}} + SECRET_TELEGRAM_CHAT_ID: ${{secrets.SECRET_TELEGRAM_CHAT_ID}} + SECRET_DISCORD_WEBHOOK_URL: ${{secrets.SECRET_DISCORD_WEBHOOK_URL}}