zebra/.github/workflows/release-binaries.yml

64 lines
2.3 KiB
YAML

# This workflow is meant to trigger a build of Docker binaries when a release
# is published, it uses the existing `sub-build-docker-image.yml` workflow
#
# We use a separate action as we might want to trigger this under
# different circumstances than a Continuous Deployment, for example.
#
# This workflow is triggered if:
# - A release is published
# - A pre-release is changed to a release
name: Release binaries
on:
release:
types:
- released
jobs:
# Each time this workflow is executed, a build will be triggered to create a new image
# with the corresponding tags using information from git
# The image will be named `zebra:<semver>`
build:
name: Build Release Docker
uses: ./.github/workflows/sub-build-docker-image.yml
with:
dockerfile_path: ./docker/Dockerfile
dockerfile_target: runtime
image_name: zebra
features: ${{ vars.RUST_PROD_FEATURES }}
rust_log: ${{ vars.RUST_LOG }}
# This step needs access to Docker Hub secrets to run successfully
secrets: inherit
# The image will be named `zebra:<semver>.experimental`
build-experimental:
name: Build Experimental Features Release Docker
uses: ./.github/workflows/sub-build-docker-image.yml
with:
dockerfile_path: ./docker/Dockerfile
dockerfile_target: runtime
image_name: zebra
tag_suffix: .experimental
features: ${{ format('{0} {1}', vars.RUST_PROD_FEATURES, vars.RUST_EXPERIMENTAL_FEATURES) }}
rust_log: ${{ vars.RUST_LOG }}
# This step needs access to Docker Hub secrets to run successfully
secrets: inherit
failure-issue:
name: Open or update issues for release binaries failures
# When a new job is added to this workflow, add it to this list.
needs: [ build, build-experimental ]
# Open tickets for any failed build in this workflow.
if: failure() || cancelled()
runs-on: ubuntu-latest
steps:
- uses: jayqi/failed-build-issue-action@v1
with:
title-template: "{{refname}} branch CI failed: {{eventName}} in {{workflow}}"
# New failures open an issue with this label.
label-name: S-ci-fail-binaries-auto-issue
# If there is already an open issue with this label, any failures become comments on that issue.
always-create-new-issue: false
github-token: ${{ secrets.GITHUB_TOKEN }}