name: "Build and deploy app"
on:
  workflow_dispatch:
  push:
    branches:
      - "main"
jobs:
  build:
    name: "build"
    runs-on: "ubuntu-latest"
    permissions:
      contents: "read"
      id-token: "write"
    steps:
      - uses: "actions/checkout@v3"
      - uses: "actions/setup-java@v3"
        with:
          distribution: "temurin"
          java-version: "17.x"
          cache: "gradle"
      - name: "Build and test"
        uses: "gradle/gradle-build-action@v2"
        with:
          arguments: :frontend:build :backend:test :backend:build
      - name: "Login to GitHub Docker Registry"
        uses: "docker/login-action@v1"
        with:
          "registry": "ghcr.io"
          "username": "${{ github.actor }}"
          "password": "${{ secrets.GITHUB_TOKEN }}"
      - name: "Build and push Docker"
        uses: "nais/docker-build-push@v0"
        id: docker-build-push
        with:
          team: "helse-sprik"
          cache_from: type=gha
          cache_to: type=gha,mode=max
          project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
          identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
    outputs:
      image: ${{ steps.docker-build-push.outputs.image }}
  "deploy":
    name: "Deploy app"
    needs: "build"
    runs-on: "ubuntu-latest"
    steps:
      - uses: "actions/checkout@v3"
      - name: "Deploy app"
        uses: "nais/deploy/actions/deploy@v1"
        env:
          "APIKEY": "${{ secrets.NAIS_DEPLOY_APIKEY }}"
          "CLUSTER": "dev-gcp"
          "RESOURCE": "nais.yml"
          "IMAGE": "${{ needs.build.outputs.image }}"