Skip to content

feat: Implement BRS-026 walking skeleton (#47) #27

feat: Implement BRS-026 walking skeleton (#47)

feat: Implement BRS-026 walking skeleton (#47) #27

Workflow file for this run

# 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
with:
print_debug_output: true
#
# CD .NET
#
promote_prerelease_core:
needs: changes
if: ${{ fromJson(needs.changes.outputs.job_context).core == 'true' }}
uses: Energinet-DataHub/.github/.github/workflows/promote-prerelease.yml@v14
with:
release_name_prefix: process_manager_core
promote_prerelease_orchestrations:
needs: changes
if: ${{ fromJson(needs.changes.outputs.job_context).orchestrations == 'true' }}
uses: Energinet-DataHub/.github/.github/workflows/promote-prerelease.yml@v14
with:
release_name_prefix: process_manager_orchestrations
promote_prerelease_dbmigrations:
needs: changes
if: ${{ fromJson(needs.changes.outputs.job_context).dbmigrations == 'true' }}
uses: Energinet-DataHub/.github/.github/workflows/promote-prerelease.yml@v14
with:
release_name_prefix: process_manager_dbmigrations
#
# 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_core:
if: ${{ fromJson(needs.changes.outputs.job_context).core == 'true' }}
runs-on: ubuntu-latest
needs: [
changes,
promote_prerelease_core
]
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-core-deployment-request-domain
client-payload: '{"pr_number": "${{ steps.find_pull_request.outputs.pull_request_number }}" }' # yamllint disable-line rule:quoted-strings
dispatch_deploment_event_orchestrations:
if: ${{ fromJson(needs.changes.outputs.job_context).orchestrations == 'true' }}
runs-on: ubuntu-latest
needs: [
changes,
promote_prerelease_orchestrations
]
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-orchestrations-deployment-request-domain
client-payload: '{"pr_number": "${{ steps.find_pull_request.outputs.pull_request_number }}"}' # yamllint disable-line rule:quoted-strings
dispatch_deploment_event_dbmigrations:
if: ${{ fromJson(needs.changes.outputs.job_context).dbmigrations == 'true' }}
runs-on: ubuntu-latest
needs: [
changes,
promote_prerelease_dbmigrations
]
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-dbmigrations-deployment-request-domain
client-payload: '{"pr_number": "${{ steps.find_pull_request.outputs.pull_request_number }}"}' # yamllint disable-line rule:quoted-strings
#
# Send notification to teams channel if deployment dispatch failed
#
dispatch_failed:
needs: [
changes,
promote_prerelease_core,
promote_prerelease_orchestrations,
promote_prerelease_dbmigrations,
dispatch_deploment_event_core,
dispatch_deploment_event_orchestrations,
dispatch_deploment_event_dbmigrations
]
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