diff --git a/.github/workflows/.reusable-frontend-deploy.yml b/.github/workflows/.reusable-frontend-deploy.yml new file mode 100644 index 000000000000..d07e24f2415b --- /dev/null +++ b/.github/workflows/.reusable-frontend-deploy.yml @@ -0,0 +1,54 @@ +# reusable workflow + +on: + workflow_call: + inputs: + gh_environment: + type: string + description: Github environment to use for secret / variable access + required: true + npm_build_environment: + type: string + description: The environment set as the ENV environment variable when running npm run env + required: true + +defaults: + run: + working-directory: frontend + +jobs: + deploy: + runs-on: ubuntu-latest + environment: ${{ inputs.environment }} + + permissions: + contents: read + + steps: + - name: Cloning repo + uses: actions/checkout@v4 + + - name: Setup Node.js 16.x + uses: actions/setup-node@v4 + with: + node-version: 16.x + + - name: Cache dependencies + uses: actions/cache@v3 + with: + path: ~/.npm + key: npm-${{ hashFiles('package-lock.json') }} + restore-keys: npm- + + - name: Deploy to Vercel + env: + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + ENV: ${{ inputs.node_env }} + run: | + npm ci --only=prod + npm run env + npm run bundle + echo ${{ github.sha }} > CI_COMMIT_SHA + npm install --global vercel@31.2.0 + vercel --prod --token ${{ secrets.VERCEL_TOKEN }} diff --git a/.github/workflows/frontend-deploy-production.yml b/.github/workflows/frontend-deploy-production.yml index 6b11f229c9f2..91fd1c04ca1f 100644 --- a/.github/workflows/frontend-deploy-production.yml +++ b/.github/workflows/frontend-deploy-production.yml @@ -8,10 +8,6 @@ on: - frontend/** - .github/** -defaults: - run: - working-directory: frontend - jobs: run-tests: runs-on: ubuntu-latest @@ -33,70 +29,17 @@ jobs: environment: prod deploy-production: - runs-on: ubuntu-latest name: Deploy to Vercel Production - environment: production needs: run-tests - - steps: - - name: Cloning repo - uses: actions/checkout@v4 - - - name: Setup Node.js 16.x - uses: actions/setup-node@v4 - with: - node-version: 16.x - - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - - name: Deploy to Vercel - env: - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} - ENV: prod - run: | - npm ci --only=prod - npm run env - npm run bundle - echo ${{ github.sha }} > CI_COMMIT_SHA - vercel --prod --token ${{ secrets.VERCEL_TOKEN }} + uses: ./.github/workflows/.reusable-frontend-deploy.yml + with: + gh_environment: prod + npm_build_environment: prod deploy-demo: - runs-on: ubuntu-latest name: Deploy to Vercel Demo - environment: demo needs: run-tests - - steps: - - name: Cloning repo - uses: actions/checkout@v4 - - - name: Setup Node.js 16.x - uses: actions/setup-node@v4 - with: - node-version: 16.x - - - name: Cache dependencies - uses: actions/cache@v3 - with: - path: ~/.npm - key: npm-${{ hashFiles('package-lock.json') }} - restore-keys: npm- - - - name: Deploy to Vercel - env: - VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} - VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} - ENV: prod - run: | - npm ci --only=prod - npm run env - npm run bundle - echo ${{ github.sha }} > CI_COMMIT_SHA - npm install --global vercel@31.2.0 - vercel --prod --token ${{ secrets.VERCEL_TOKEN }} + uses: ./.github/workflows/.reusable-frontend-deploy.yml + with: + gh_environment: demo + npm_build_environment: prod