-
Notifications
You must be signed in to change notification settings - Fork 0
141 lines (128 loc) · 4.03 KB
/
manual-deploy.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Manually triggered deployment
run-name: Manual ${{ github.event.inputs.environment }} deploy of branch ${{ github.head_ref || github.ref_name }}
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to deploy'
required: true
default: 'preprod-q2'
type: choice
options:
- none
- preprod-q1
- preprod-q2
- loadtests
- prod
permissions:
contents: "read"
id-token: "write"
jobs:
build-and-push:
name: Build and push Docker container
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
cache: 'maven'
- name: set timezone
uses: szenius/[email protected]
with:
timezoneLinux: "Europe/Oslo"
- name: Build with maven
run: mvn install --file pom.xml
- name: Build and push Docker image
uses: nais/docker-build-push@v0
id: docker-build-push
with:
team: team-soknad
identity_provider: ${{ secrets.NAIS_WORKLOAD_IDENTITY_PROVIDER }}
project_id: ${{ vars.NAIS_MANAGEMENT_PROJECT_ID }}
image_suffix: ${{ github.event.inputs.environment }}
byosbom: target/classes/META-INF/sbom/application.cdx.json
outputs:
image: ${{ steps.docker-build-push.outputs.image }}
deploy-preprod-q1:
name: Deploy to preprod-q1
needs: build-and-push
if: github.event.inputs.environment == 'preprod-q1'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: dev-gcp
RESOURCE: .nais/nais.yml
VARS: .nais/config-preprod.json
VAR: image=${{ needs.build-and-push.outputs.image }}
deploy-preprod-q2:
name: Deploy to preprod-q2
needs: build-and-push
if: github.event.inputs.environment == 'preprod-q2'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: dev-gcp
RESOURCE: .nais/nais.yml
VARS: .nais/config-preprod-q2.json
VAR: image=${{ needs.build-and-push.outputs.image }}
deploy-loadtests:
name: Deploy to preprod loadtests
needs: build-and-push
if: github.event.inputs.environment == 'loadtests'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: dev-gcp
RESOURCE: .nais/nais.yml
VARS: .nais/config-loadtests.json
VAR: image=${{ needs.build-and-push.outputs.image }}
deploy-prod:
name: Deploy to prod
needs: build-and-push
if: github.event.inputs.environment == 'prod'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: prod-gcp
RESOURCE: .nais/nais.yml
VARS: .nais/config-prod.json
VAR: image=${{ needs.build-and-push.outputs.image }}
deploy-alerts-preprod:
needs: [ deploy-preprod-q1, deploy-preprod-q2 ]
if: always() && (needs.deploy-preprod-q1.result == 'success' || needs.deploy-preprod-q2.result == 'success')
name: Deploy alerts to dev
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to dev
uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: dev-gcp
RESOURCE: .nais/alerts.yml
VARS: .nais/preprod-alert.json
deploy-alerts-prod:
if: github.event.inputs.environment == 'prod'
needs: deploy-prod
name: Deploy alerts to prod
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy to dev
uses: nais/deploy/actions/deploy@v2
env:
CLUSTER: prod-gcp
RESOURCE: .nais/alerts.yml
VARS: .nais/prod-alert.json