name: Build and push Doorman UI / API on: push: branches: [main] jobs: diff: uses: martin/chromart-gitea-actions/.gitea/workflows/diff-output.yaml@main with: repository: ${{ github.repository }} ref: ${{ github.ref }} files: packages/** secrets: token: ${{ github.token }} twilio: needs: diff if: ${{ needs.diff.outputs.is_changed == 'true' }} runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 name: Check out code - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: install dependencies run: bun install - name: run local integration test run: bun integ-test:local env: ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }} DISCORD_CLIENT_SECRET: ${{ secrets.DISCORD_CLIENT_SECRET }} - name: Deploy Doorman UI and API to staging run: bun run deploy-serverless:staging env: ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} AWS_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN }} DISCORD_CLIENT_SECRET: ${{ secrets.DISCORD_CLIENT_SECRET }} STAGE: staging DOORMAN_URL: https://doorman-6741-staging.twil.io - name: Deploy Doorman Buzzer Client to staging run: bun run deploy-buzzer-client:staging env: ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} STAGE: staging DOORMAN_URL: https://doorman-6741-staging.twil.io - name: Wait after 15s deploy staging run: sleep 15s - name: run staging integration test run: bun integ-test:staging - name: Promote Doorman UI and API staging to prod run: bun run deploy-serverless env: ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} STAGE: prod DOORMAN_URL: https://doorman.chromart.cc - name: Promote Doorman Buzzer Client staging to prod run: bun run deploy-buzzer-client env: ACCOUNT_SID: ${{ secrets.TWILIO_ACCOUNT_SID }} AUTH_TOKEN: ${{ secrets.TWILIO_AUTH_TOKEN }} STAGE: prod DOORMAN_URL: https://doorman.chromart.cc