Merge pull request #4573 from navikt/pamelding-komet #8388
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD (mr-admin-flate) | |
on: | |
push: | |
paths: | |
- .github/workflows/mr-admin-flate.yaml | |
- package.json | |
- pnpm-lock.yaml | |
- turbo.json | |
- frontend/mr-admin-flate/** | |
- frontend/api-client/** | |
- mulighetsrommet-api/src/main/resources/web/openapi.yaml | |
workflow_dispatch: | |
inputs: | |
environment: | |
type: choice | |
description: Environment | |
required: true | |
default: dev | |
options: | |
- dev | |
- dev_and_prod | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CI: true | |
TZ: Europe/Amsterdam | |
jobs: | |
playwright-version: | |
name: Get playwright version | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
working-directory: frontend/mr-admin-flate | |
outputs: | |
version: ${{ steps.get-version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: get-version | |
run: echo "version=$(cat package.json | jq -r '.devDependencies.playwright' | sed -e 's/^[\^\~]//')" >> "$GITHUB_OUTPUT" | |
ci: | |
name: CI | |
runs-on: ubuntu-latest | |
needs: playwright-version | |
container: | |
image: mcr.microsoft.com/playwright:v${{ needs.playwright-version.outputs.version }}-jammy | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup frontend | |
uses: ./.github/actions/setup-frontend | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | |
- name: Test | |
run: npx turbo run lint typecheck test playwright --filter=mr-admin-flate | |
deploy-dev: | |
name: Deploy (dev) | |
runs-on: ubuntu-latest | |
needs: [ci] | |
permissions: | |
id-token: "write" # Used to authenticate with Google Cloud | |
if: github.event_name == 'push' && github.ref_name == 'main' || github.event_name == 'workflow_dispatch' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup frontend | |
uses: ./.github/actions/setup-frontend | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | |
- name: Build | |
run: npx turbo run build --filter=mr-admin-flate | |
- name: Authenticate to Google Cloud | |
uses: google-github-actions/auth@v2 | |
with: | |
workload_identity_provider: projects/932652929200/locations/global/workloadIdentityPools/github/providers/github-action | |
service_account: [email protected] | |
- name: Set up gcloud | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: Upload files to GCS | |
run: gsutil -m rsync -r frontend/mr-admin-flate/dist gs://mr-admin-flate-dev | |
deploy-demo: | |
name: Deploy (demo) | |
runs-on: ubuntu-latest | |
needs: [ci] | |
permissions: | |
id-token: "write" # Used to authenticate with Google Cloud | |
if: github.event_name == 'push' && github.ref_name == 'main' || github.event_name == 'workflow_dispatch' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup frontend | |
uses: ./.github/actions/setup-frontend | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | |
- name: Build | |
run: npx turbo run build:demo --filter=mr-admin-flate | |
- name: Authenticate to Google Cloud | |
uses: google-github-actions/auth@v2 | |
with: | |
workload_identity_provider: projects/932652929200/locations/global/workloadIdentityPools/github/providers/github-action | |
service_account: [email protected] | |
- name: Set up gcloud | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: Upload files to GCS | |
run: gsutil -m rsync -r frontend/mr-admin-flate/dist gs://mr-admin-flate-demo | |
deploy-prod: | |
name: Deploy (prod) | |
runs-on: ubuntu-latest | |
needs: [ci, deploy-dev, deploy-demo] | |
permissions: | |
id-token: "write" # Used to authenticate with Google Cloud | |
if: github.event_name == 'push' && github.ref_name == 'main' || github.event_name == 'workflow_dispatch' && github.event.inputs.environment == 'dev_and_prod' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup frontend | |
uses: ./.github/actions/setup-frontend | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.READER_TOKEN }} | |
- name: Build | |
run: npx turbo run build --filter=mr-admin-flate | |
- name: Authenticate to Google Cloud | |
uses: google-github-actions/auth@v2 | |
with: | |
workload_identity_provider: projects/380520190028/locations/global/workloadIdentityPools/github/providers/github-action | |
service_account: prod-deploy@team-mulighetsrommet-prod-5492.iam.gserviceaccount.com | |
- name: Set up gcloud | |
uses: google-github-actions/setup-gcloud@v2 | |
- name: Upload files to GCS | |
run: gsutil -m rsync -r frontend/mr-admin-flate/dist gs://mr-admin-flate-prod |