Skip to content

Commit 1759182

Browse files
committed
add workflow
1 parent 1efd080 commit 1759182

File tree

1 file changed

+27
-69
lines changed

1 file changed

+27
-69
lines changed
Lines changed: 27 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
name: Klass-forvaltning build and deploy
22

3+
on:name: Klass-forvaltning build and deploy
4+
35
on:
46
release:
57
types: [ published ]
@@ -10,8 +12,16 @@ on:
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
1525
jobs:
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

Comments
 (0)