Skip to content

PEK-849 Prepare for 'Fail on unknown JSON properties' (#80) #6

PEK-849 Prepare for 'Fail on unknown JSON properties' (#80)

PEK-849 Prepare for 'Fail on unknown JSON properties' (#80) #6

Workflow file for this run

name: Build and deploy to Prod
on:
push:
branches:
- main
paths-ignore:
- '.gitignore'
- 'CODEOWNERS'
- 'LICENSE'
- 'README.md'
jobs:
build:
name: Build
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
id-token: write
packages: write
security-events: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: java
- name: Setup java
uses: actions/setup-java@v4
with:
cache: maven
java-version: 21
distribution: temurin
- name: Build with Maven
run: mvn -B package --file pom.xml
- name: Perform CodeQL analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:java"
- name: Create Docker image
id: image-creation
uses: nais/docker-build-push@v0
with:
dockerfile: .docker/Dockerfile
team: pensjonskalkulator
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
outputs:
image: ${{ steps.image-creation.outputs.image }}
deploy-prod:
name: Deploy to prod-gcp
needs: [ build ]
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Deploy to prod-gcp
uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: prod-gcp
IMAGE: ${{ needs.build.outputs.image }}
RESOURCE: .nais/deploy-prod.yml
deploy-krakend-config-prod:
name: Deploy KrakenD config to prod
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@v4
- name: Deploy KrakenD config
uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: prod-gcp
RESOURCE: .nais/api/krakend-prod.yaml
- name: Deploy API endpoints config
uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: prod-gcp
RESOURCE: .nais/api/apiendpoints.yaml
trivy-imagescan:
name: Scan Docker image
needs: [ build ]
env:
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
id-token: write
security-events: write
steps:
- uses: nais/login@v0
with:
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
team: pensjonskalkulator
- name: Run Trivy vulnerability scanner on Docker image
uses: aquasecurity/trivy-action@master
with:
image-ref: ${{ needs.build.outputs.image }}
ignore-unfixed: true
format: 'sarif'
output: 'trivy-results.sarif'
severity: 'MEDIUM,HIGH,CRITICAL'
limit-severities-for-sarif: true
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: 'trivy-results.sarif'