Shared CI workflows
notify_email.yml sends an email if any job of the calling workflow run failed, was cancelled or timed out.
Add it as the last job of a workflow:
notify:
name: Email notification
# Wait for all other jobs
needs: [job_a, job_b]
# Only run in main repo and even if previous step failed
if: github.repository_owner == 'stormchecker' && always()
uses: stormchecker/ci-workflows/.github/workflows/notify_email.yml@v1
with:
# Optional, used in the email subject
title: CI
secrets: inherit
permissions:
actions: readThe secrets STORM_CI_MAIL_SERVER, STORM_CI_MAIL_USERNAME, STORM_CI_MAIL_PASSWORD and STORM_CI_MAIL_RECIPIENTS must be available to the calling repository.
release_docker.yml builds a Release (<tag>) and a Debug (<tag>-debug) Docker image for linux/amd64 and linux/arm64 and pushes them to DockerHub.
The build is distributed across multiple runners using Docker's reusable workflow.
The image is built from the commit of the calling workflow run.
Example call:
release:
uses: stormchecker/ci-workflows/.github/workflows/release_docker.yml@v1
permissions:
contents: read
id-token: write # to sign the provenance of the images
with:
image: movesrwth/storm
tag: ${{ inputs.tag }}
push: true
dockerfile: .github/workflows/Dockerfile.release
# Additional build arguments for both variants (one per line)
build_args: |
BASE_IMAGE=movesrwth/storm-dependencies:latest
# Additional build arguments for a single variant
debug_build_args: developer=ON
release_build_args: developer=OFF
secrets: inheritThe build arguments build_type (Debug/Release) and no_threads (default 4) are always passed.
The secrets STORM_CI_DOCKER_USERNAME and STORM_CI_DOCKER_TOKEN must be available to the calling repository.