From 752baf2b77c82d8f650cc9e86d627d7e5406dd28 Mon Sep 17 00:00:00 2001 From: stdavis Date: Wed, 14 Aug 2024 16:56:29 -0600 Subject: [PATCH] ci: move deploy into separate workflow Co-authored-by: steveoh --- .github/workflows/push.yml | 62 ++------------------------- .github/workflows/release.yml | 79 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+), 59 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 13b69c0..ac2c2b5 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -6,12 +6,6 @@ on: - dev - main -permissions: - contents: write - id-token: write - deployments: write - pull-requests: write - concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true @@ -20,8 +14,9 @@ jobs: release-please: name: Create release runs-on: ubuntu-latest - outputs: - release_created: ${{ steps.release-please.outputs.release_created }} + permissions: + contents: write + pull-requests: write steps: - name: 🚀 Create Release @@ -34,54 +29,3 @@ jobs: github-app-key: ${{ secrets.UGRC_RELEASE_BOT_APP_KEY }} github-app-name: ${{ secrets.UGRC_RELEASE_BOT_NAME }} github-app-email: ${{ secrets.UGRC_RELEASE_BOT_EMAIL }} - - deploy-dev: - name: Deploy to staging - runs-on: ubuntu-latest - needs: release-please - environment: - name: dev - url: https://atlas.dev.utah.gov - if: github.ref_name == 'dev' && needs.release-please.outputs.release_created - - steps: - - name: 🚀 Deploy - uses: agrc/firebase-website-deploy-composite-action@v1 - with: - identity-provider: ${{ secrets.IDENTITY_PROVIDER }} - service-account-email: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} - project-id: ${{ secrets.PROJECT_ID }} - build-command: npm run build -- --mode dev - env: - VITE_DISCOVER: ${{ secrets.VITE_DISCOVER }} - VITE_WEB_API: ${{ secrets.VITE_WEB_API }} - VITE_PRINT_PROXY: ${{ secrets.VITE_PRINT_PROXY }} - VITE_FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} - - deploy-prod: - name: Deploy to production - runs-on: ubuntu-latest - needs: release-please - environment: - name: prod - url: https://atlas.utah.gov - if: github.ref_name == 'main' && needs.release-please.outputs.release_created - - steps: - - name: 🚀 Deploy - uses: agrc/firebase-website-deploy-composite-action@v1 - with: - identity-provider: ${{ secrets.IDENTITY_PROVIDER }} - service-account-email: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} - project-id: ${{ secrets.PROJECT_ID }} - build-command: npm run build -- --mode production - service-now-instance: ${{ secrets.SN_INSTANCE }} - service-now-table: ${{ secrets.SN_TABLE }} - service-now-system-id: ${{ secrets.SN_SYS_ID }} - service-now-username: ${{ secrets.SN_USERNAME }} - service-now-password: ${{ secrets.SN_PASSWORD }} - repo-token: ${{ secrets.GITHUB_TOKEN }} - env: - VITE_DISCOVER: ${{ secrets.VITE_DISCOVER }} - VITE_WEB_API: ${{ secrets.VITE_WEB_API }} - VITE_FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..ad256f6 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,79 @@ +name: Release Events + +on: + release: + types: [published] + workflow_dispatch: + inputs: + environment: + description: 'Environment to run tests against' + type: environment + required: true + +permissions: + id-token: write + deployments: write + +jobs: + deploy-dev: + name: Deploy to staging + runs-on: ubuntu-latest + environment: + name: dev + url: https://atlas.dev.utah.gov + if: github.event.release.prerelease == true || inputs.environment == 'dev' + + steps: + - name: 🚀 Deploy + uses: agrc/firebase-website-deploy-composite-action@v1 + with: + identity-provider: ${{ secrets.IDENTITY_PROVIDER }} + service-account-email: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} + project-id: ${{ secrets.PROJECT_ID }} + build-command: npm run build -- --mode dev + env: + VITE_DISCOVER: ${{ secrets.VITE_DISCOVER }} + VITE_WEB_API: ${{ secrets.VITE_WEB_API }} + VITE_PRINT_PROXY: ${{ secrets.VITE_PRINT_PROXY }} + VITE_FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} + + deploy-prod: + name: Deploy to production + runs-on: ubuntu-latest + environment: + name: prod + url: https://atlas.utah.gov + if: github.event.release.prerelease == false || inputs.environment == 'prod' + + steps: + - name: 🚀 Deploy + uses: agrc/firebase-website-deploy-composite-action@v1 + with: + identity-provider: ${{ secrets.IDENTITY_PROVIDER }} + service-account-email: ${{ secrets.SERVICE_ACCOUNT_EMAIL }} + project-id: ${{ secrets.PROJECT_ID }} + build-command: npm run build -- --mode production + service-now-instance: ${{ secrets.SN_INSTANCE }} + service-now-table: ${{ secrets.SN_TABLE }} + service-now-system-id: ${{ secrets.SN_SYS_ID }} + service-now-username: ${{ secrets.SN_USERNAME }} + service-now-password: ${{ secrets.SN_PASSWORD }} + repo-token: ${{ secrets.GITHUB_TOKEN }} + env: + VITE_DISCOVER: ${{ secrets.VITE_DISCOVER }} + VITE_WEB_API: ${{ secrets.VITE_WEB_API }} + VITE_FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }} + + notify: + name: Notifications + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + issues: write + + steps: + - name: Release Notifier + uses: agrc/release-issue-notifications-action@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }}