-
Notifications
You must be signed in to change notification settings - Fork 0
84 lines (72 loc) · 2.84 KB
/
cd.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
# Copyright 2020 Energinet DataHub A/S
#
# Licensed under the Apache License, Version 2.0 (the "License2");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: CD
on:
push:
branches:
- main
jobs:
#
# Detect changes to start relevant jobs
#
changes:
uses: ./.github/workflows/detect-changes.yml
#
# CD .NET
#
dotnet_promote_prerelease:
needs: changes
if: ${{ needs.changes.outputs.dotnet == 'true' || needs.changes.outputs.db_migrations == 'true'}}
uses: Energinet-DataHub/.github/.github/workflows/promote-prerelease.yml@v14
with:
release_name_prefix: dotnet
#
# Dispatch deployment request
# Only dispatch if there are changes to either dotnet or database migrations. No need to deploy if only C4 model views are updated.
#
dispatch_deploment_event:
if: ${{ needs.changes.outputs.dotnet == 'true' || needs.changes.outputs.db_migrations == 'true' }}
runs-on: ubuntu-latest
needs: [dotnet_promote_prerelease, changes]
steps:
- name: Find associated pull request
uses: Energinet-DataHub/.github/.github/actions/find-related-pr-number@v14
id: find_pull_request
- uses: Energinet-DataHub/.github/.github/actions/github-create-token@v14
name: Generate Github token
id: generate_token
with:
app_id: ${{ vars.dh3serviceaccount_appid }}
private_key: ${{ secrets.dh3serviceaccount_privatekey }}
- name: Repository Dispatch
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ steps.generate_token.outputs.token }}
repository: ${{ vars.environment_repository_path }}
event-type: process-manager-deployment-request-domain
client-payload: '{"pr_number": "${{ steps.find_pull_request.outputs.pull_request_number }}", "dotnet": "${{ needs.changes.outputs.dotnet }}", "db_migrations": "${{ needs.changes.outputs.db_migrations }}"}' # yamllint disable-line rule:quoted-strings
#
# Send notification to teams channel if deployment dispatch failed
#
dispatch_failed:
needs: [dotnet_promote_prerelease, dispatch_deploment_event]
if: |
always() &&
contains(needs.*.result, 'failure')
uses: Energinet-DataHub/.github/.github/workflows/notify-team.yml@v14
with:
team_name: Mosaic
email: [email protected]
subject: "Deployment dispatch failed: Process Manager"
secrets: inherit