11name : Klass-forvaltning build and deploy
22
3+ on:name : Klass-forvaltning build and deploy
4+
35on :
46 release :
57 types : [ published ]
1012 - " klass-forvaltning/**"
1113 - " .nais/**/klass-forvaltning.yaml"
1214 - " .github/workflows/klass-forvaltning-build-and-deploy.yaml"
13-
14-
15+ workflow_dispatch :
16+ inputs :
17+ cluster :
18+ description : " Which cluster to deploy to?"
19+ required : true
20+ default : " test"
21+ type : choice
22+ options :
23+ - test
24+ - prod
1525jobs :
1626 docker-build :
1727 name : Docker build
@@ -20,94 +30,42 @@ jobs:
2030 id-token : " write"
2131 packages : " read"
2232 runs-on : ubuntu-latest
23- outputs :
24- image : ${{ steps.docker-build-push.outputs.image }}
25- telemetry : ${{ steps.docker-build-push.outputs.telemetry }}
26- prod-config-changed : ${{ steps.prod-config-changed.outputs.changed != 'non-inputs' }}
27- test-config-changed : ${{ steps.test-config-changed.outputs.changed != 'non-inputs' }}
28- only-config-changed : ${{ steps.changed-files.outputs.changed == 'only-inputs'}}
2933 steps :
3034 - name : Checkout
3135 uses : actions/checkout@v4
32- with :
33- fetch-depth : 0
3436 - uses : actions/setup-java@v4
3537 with :
3638 distribution : ' temurin'
3739 java-version : ' 8'
3840 cache : ' maven'
39- - name : Check what changed
40- id : changed-files
41- uses : " nais/what-changed@main"
42- with :
43- files : .nais/**/klass-forvaltning.yaml
44- main-branch-name : ' nais-migration' # TODO: Remove when we change branch back to main
45- - name : Check for test config changes
46- id : test-config-changed
47- uses : " nais/what-changed@main"
48- with :
49- files : .nais/test/klass-forvaltning.yaml
50- main-branch-name : ' nais-migration' # TODO: Remove when we change branch back to main
51- - name : Check for prod config changes
52- id : prod-config-changed
53- uses : " nais/what-changed@main"
54- with :
55- files : .nais/prod/klass-forvaltning.yaml
56- main-branch-name : ' nais-migration' # TODO: Remove when we change branch back to main
5741 - name : Build with Maven
58- if : steps.changed-files.outputs.changed != 'only-inputs'
5942 working-directory : klass-forvaltning
6043 run : mvn -B install -DskipTests
6144 env :
6245 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
6346 - name : Build and push
64- if : steps.changed-files.outputs.changed != 'only-inputs'
6547 uses : nais/docker-build-push@v0
6648 id : docker-build-push
6749 with :
6850 team : dapla-metadata
6951 image_suffix : forvaltning
7052 dockerfile : klass-forvaltning/Dockerfile
7153 docker_context : klass-forvaltning
72-
73- deploy-test :
74- name : Deploy to test
75- needs : docker-build
76- permissions :
77- contents : " read"
78- id-token : " write"
79- packages : " read"
80- runs-on : ubuntu-latest
81- if : github.event_name != 'release' || needs.build.outputs.test-config-changed == 'true'
82- steps :
83- - name : Checkout
84- uses : actions/checkout@v4
85-
86- - uses : nais/deploy/actions/deploy@v2
87- env :
88- CLUSTER : test
89- RESOURCE : .nais/test/klass-forvaltning.yaml
90- DEPLOY_SERVER : deploy.ssb.cloud.nais.io:443
91- WORKLOAD_IMAGE : ${{ needs.build.outputs.image }}
92- TELEMETRY : ${{ needs.build.outputs.telemetry }}
93-
94- deploy-prod :
95- name : Deploy to prod
96- needs : docker-build
97- permissions :
98- contents : " read"
99- id-token : " write"
100- packages : " read"
101- runs-on : ubuntu-latest
102- if : github.event_name == 'release' || (needs.build.outputs.prod-config-changed == 'true' && needs.build.outputs.only-config-changed == 'true')
103- steps :
104- - name : Checkout
105- uses : actions/checkout@v4
106-
54+ - name : Generate NAIS deploy variables
55+ id : nais-deploy-vars
56+ run : |
57+ if [[ ${{ github.event_name }} == "release" ]]; then
58+ echo "nais_cluster=prod" >> "$GITHUB_OUTPUT"
59+ echo "nais_config_path=.nais/prod/klass-forvaltning.yaml" >> "$GITHUB_OUTPUT"
60+ else
61+ echo "nais_cluster=test" >> "$GITHUB_OUTPUT"
62+ echo "nais_config_path=.nais/test/klass-forvaltning.yaml" >> "$GITHUB_OUTPUT"
63+ fi
10764 - uses : nais/deploy/actions/deploy@v2
10865 env :
109- CLUSTER : prod
110- RESOURCE : .nais/prod/klass-forvaltning.yaml
66+ CLUSTER : ${{ steps.nais-deploy-vars.outputs.nais_cluster }}
67+ RESOURCE : ${{ steps.nais-deploy-vars.outputs.nais_config_path }}
68+ VAR : image=${{ steps.docker-build-push.outputs.image }}
11169 DEPLOY_SERVER : deploy.ssb.cloud.nais.io:443
112- WORKLOAD_IMAGE : ${{ needs. build.outputs.image }}
113- TELEMETRY : ${{ needs. build.outputs.telemetry }}
70+ WORKLOAD_IMAGE : ${{ steps.docker- build-push .outputs.image }}
71+ TELEMETRY : ${{ steps.docker- build-push .outputs.telemetry }}
0 commit comments