Skip to content

Nightly Build

Nightly Build #321

Workflow file for this run

name: Nightly Build
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Runs every night at midnight UTC
jobs:
set-release-version:
if: github.repository_owner == 'Informatievlaanderen'
name: Decide next version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.set-version.outputs.version }}
steps:
- name: Set Release Version
id: set-version
run: |
echo $(date +%Y).$(date +%m).$(date +%d) > semver
echo $(cat semver)
echo ::set-output name=version::$(cat semver)
echo RELEASE_VERSION=$(cat semver) >> $GITHUB_ENV
shell: bash
build-acm-api:
name: Build ACM Api
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-acm-api-image.tar
image-name: verenigingsregister-acmapi
test-project: AssociationRegistry.Test.Acm.Api
build-project: AssociationRegistry.Acm.Api/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: true
run-docker-wiremock: false
run-docker-db: true
pre-gen-marten: true
run-docker-elasticsearch: false
run-docker-localstack: false
run-docker-otelcollector: false
secrets: inherit
build-public-api:
name: Build Public Api
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-public-api-image.tar
image-name: verenigingsregister-publicapi
test-project: AssociationRegistry.Test.Public.Api
build-project: AssociationRegistry.Public.Api/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: false
run-docker-wiremock: false
run-docker-db: true
pre-gen-marten: false
run-docker-elasticsearch: true
run-docker-localstack: true
run-docker-otelcollector: true
secrets: inherit
build-public-projections:
name: Build Public Projections
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-public-projections-image.tar
image-name: verenigingsregister-publicprojections
build-project: AssociationRegistry.Public.ProjectionHost/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: false
run-docker-wiremock: false
run-docker-db: true
pre-gen-marten: true
run-docker-elasticsearch: true
run-docker-localstack: false
run-docker-otelcollector: true
secrets: inherit
build-admin-api:
name: Build Admin Api
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-admin-api-image.tar
image-name: verenigingsregister-adminapi
test-project: AssociationRegistry.Test.Admin.Api
build-project: AssociationRegistry.Admin.Api/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: true
run-docker-wiremock: true
run-docker-db: true
run-docker-elasticsearch: true
run-docker-localstack: true
run-docker-otelcollector: true
pre-gen-marten: true
secrets: inherit
build-admin-projections:
name: Build Admin Projections
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-admin-projections-image.tar
image-name: verenigingsregister-adminprojections
build-project: AssociationRegistry.Admin.ProjectionHost/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: true
run-docker-wiremock: true
run-docker-db: true
run-docker-elasticsearch: true
run-docker-localstack: true
run-docker-otelcollector: true
pre-gen-marten: true
secrets: inherit
build-admin-address-sync:
name: Build Admin Address Sync Scheduled Task
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-admin-address-sync-image.tar
image-name: verenigingsregister-admin-address-sync
test-project: AssociationRegistry.Test.Admin.AddressSync
build-project: AssociationRegistry.Admin.AddressSync/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: false
run-docker-wiremock: false
run-docker-db: true
run-docker-elasticsearch: false
run-docker-localstack: false
run-docker-otelcollector: true
pre-gen-marten: true
secrets: inherit
build-powerbi-exporthost:
name: Build PowerBI Export Scheduled Task
uses: ./.github/workflows/build-image.yml
if: github.repository_owner == 'Informatievlaanderen'
needs: [ set-release-version ]
with:
image-file: ar-powerbiexport-image.tar
image-name: verenigingsregister-powerbiexport
test-project: AssociationRegistry.Test.PowerBi.ExportHost
build-project: AssociationRegistry.PowerBi.ExportHost/
semver: ${{ needs.set-release-version.outputs.version }}
run-docker-acm: false
run-docker-wiremock: false
run-docker-db: true
run-docker-elasticsearch: false
run-docker-localstack: false
run-docker-otelcollector: true
pre-gen-marten: false
secrets: inherit
notify-success:
if: ${{ success() }}
name: Notify Slack of Success
runs-on: ubuntu-latest
needs:
- build-acm-api
- build-public-api
- build-public-projections
- build-admin-api
- build-admin-projections
steps:
- name: Post to Slack
id: slack
uses: slackapi/slack-github-action@v1.21.0
with:
channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
slack-message: ":thumbsup: VR Nightly build succeeded: \n
${{github.event.head_commit.url }} \n
${{format('{0}: {1}', 'build-acm-api', needs.build-acm-api.result) }}\n
${{format('{0}: {1}', 'build-public-api', needs.build-public-api.result) }}\n
${{format('{0}: {1}', 'build-public-projections', needs.build-public-projections.result) }}\n
${{format('{0}: {1}', 'build-admin-api', needs.build-admin-api.result) }}\n
${{format('{0}: {1}', 'build-admin-projections', needs.build-admin-projections.result) }}\n
${{ github.event.pull_request.html_url || github.event.head_commit.url }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
notify-failure:
if: ${{ failure() }}
name: Notify Slack of Failure
runs-on: ubuntu-latest
needs:
- build-acm-api
- build-public-api
- build-public-projections
- build-admin-api
- build-admin-projections
steps:
- name: Post to Slack
id: slack
uses: slackapi/slack-github-action@v1.21.0
with:
# Slack channel id, channel name, or user id to post message.
# See also: https://api.slack.com/methods/chat.postMessage#channels
channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
# For posting a simple plain text message
slack-message: ":thumbsdown: VR Nightly build failed some checks: \n
${{github.event.head_commit.url }} \n
${{format('{0}: {1}', 'build-acm-api', needs.build-acm-api.result) }}\n
${{format('{0}: {1}', 'build-public-api', needs.build-public-api.result) }}\n
${{format('{0}: {1}', 'build-public-projections', needs.build-public-projections.result) }}\n
${{format('{0}: {1}', 'build-admin-api', needs.build-admin-api.result) }}\n
${{format('{0}: {1}', 'build-admin-projections', needs.build-admin-projections.result) }}\n
${{ github.event.pull_request.html_url || github.event.head_commit.url }}"
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}