name: Prune preview deploys on: schedule: # run once per day at midnight or whatever - cron: '0 0 * * *' workflow_dispatch: permissions: id-token: 'write' env: CI: 1 PRINT_GITHUB_ANNOTATIONS: 1 defaults: run: shell: bash jobs: deploy: name: Prune preview deploys timeout-minutes: 30 runs-on: ubuntu-latest environment: deploy-staging steps: - name: Check out code uses: actions/checkout@v6 with: submodules: true fetch-depth: 0 - uses: ./.github/actions/setup - name: Setup Fly IO uses: superfly/flyctl-actions/setup-flyctl@ed8efb33836e8b2096c7fd3ba1c8afe303ebbff1 # 1.6 - name: Configure AWS credentials using OIDC uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: arn:aws:iam::571248596162:role/huppy-bot aws-region: 'eu-north-1' - name: Prune preview deploys run: yarn tsx internal/scripts/prune-preview-deploys.ts env: GH_TOKEN: ${{ github.token }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }} SUPABASE_PREVIEW_PROJECT_ID: ${{ vars.SUPABASE_PREVIEW_PROJECT_ID }} FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} ZERO_R2_ENDPOINT: ${{ secrets.ZERO_R2_ENDPOINT }} ZERO_R2_BUCKET_NAME: ${{ secrets.ZERO_R2_BUCKET_NAME }} ZERO_R2_ACCESS_KEY_ID: ${{ secrets.ZERO_R2_ACCESS_KEY_ID }} ZERO_R2_SECRET_ACCESS_KEY: ${{ secrets.ZERO_R2_SECRET_ACCESS_KEY }} R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }} R2_ACCESS_KEY_SECRET: ${{ secrets.R2_ACCESS_KEY_SECRET }} - name: Notify Discord on failure if: failure() uses: ./.github/actions/discord-fail-notify with: webhook-url: ${{ secrets.DISCORD_DEPLOY_WEBHOOK_URL }}