Merge pull request #1367 from atc0005/update-changelog-for-v0.14.9-re… #23
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# See LICENSE file in this repo for license details. | |
name: Release Build | |
on: | |
push: | |
tags: | |
# Match any semver tag, rely on the workflow steps to apply necessary | |
# logic to separate "stable" release builds from "prerelease" builds. | |
- "v[0-9]+.[0-9]+.*" | |
jobs: | |
git_describe_semver: | |
name: Generate semantic release version using git-describe-semver | |
runs-on: ubuntu-latest | |
# Default: 360 minutes | |
timeout-minutes: 5 | |
# https://docs.github.com/en/actions/using-jobs/defining-outputs-for-jobs | |
outputs: | |
version: ${{ steps.git-describe-semver.outputs.version }} | |
steps: | |
- name: Print Docker version | |
run: docker --version | |
- name: Clone repo with full history | |
uses: actions/checkout@v4 | |
with: | |
# Needed in order to retrieve tags for use with semver calculations | |
fetch-depth: 0 | |
# Mark the current working directory as a safe directory in git to | |
# resolve "dubious ownership" complaints. | |
# | |
# https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables | |
# https://confluence.atlassian.com/bbkb/git-command-returns-fatal-error-about-the-repository-being-owned-by-someone-else-1167744132.html | |
# https://github.com/actions/runner-images/issues/6775 | |
# https://github.com/actions/checkout/issues/766 | |
- name: Mark the current working directory as a safe directory in git | |
# run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
run: git config --global --add safe.directory "${PWD}" | |
# NOTE: See build-images.yml for other potential approaches. | |
# | |
# https://github.com/choffmeister/git-describe-semver/pkgs/container/git-describe-semver | |
# https://github.com/choffmeister/git-describe-semver/blob/v0.3.11/action.yaml | |
# https://github.com/choffmeister/git-describe-semver/blob/v0.4.0/action.yaml | |
# https://github.com/choffmeister/git-describe-semver/issues/8 | |
- name: Record semantic version using git-describe-semver | |
uses: docker://ghcr.io/choffmeister/git-describe-semver:0.3.11 | |
id: git-describe-semver | |
with: | |
args: >- | |
--fallback="v0.0.0" | |
--drop-prefix=false | |
--prerelease-prefix="dev" | |
--prerelease-suffix="" | |
--prerelease-timestamped="false" | |
--format="version=<version>" | |
$GITHUB_OUTPUT | |
- name: Print semantic version generated by git-describe-semver | |
run: | | |
echo "${{ steps.git-describe-semver.outputs.version }}" | |
release_build: | |
name: Build and upload container images | |
needs: git_describe_semver | |
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication | |
permissions: | |
contents: write | |
discussions: write | |
packages: write | |
if: startsWith(github.ref, 'refs/tags') | |
runs-on: ubuntu-latest | |
# Default: 360 minutes | |
timeout-minutes: 45 | |
steps: | |
- name: Log tag info | |
run: | | |
echo "Ref type: ${{ github.ref_type }}" | |
echo "Ref name: ${{ github.ref_name }}" | |
echo "Ref full: ${{ github.ref }}" | |
echo "Commit SHA: ${{ github.sha }}" | |
- name: Check out code with default settings | |
uses: actions/checkout@v4 | |
# Mark the current working directory as a safe directory in git to | |
# resolve "dubious ownership" complaints. | |
# | |
# https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables | |
# https://confluence.atlassian.com/bbkb/git-command-returns-fatal-error-about-the-repository-being-owned-by-someone-else-1167744132.html | |
# https://github.com/actions/runner-images/issues/6775 | |
# https://github.com/actions/checkout/issues/766 | |
- name: Mark the current working directory as a safe directory in git | |
# run: git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
run: git config --global --add safe.directory "${PWD}" | |
# bsdmainutils provides "column" which is used by the Makefile | |
- name: Install Ubuntu packages | |
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends make gcc bsdmainutils | |
- name: Build all images | |
env: | |
REPO_VERSION: ${{ needs.git_describe_semver.outputs.version }} | |
run: | | |
make build | |
- name: Upload all images | |
env: | |
REPO_VERSION: ${{ needs.git_describe_semver.outputs.version }} | |
# https://docs.github.com/en/actions/security-guides/encrypted-secrets#using-encrypted-secrets-in-a-workflow | |
DH_TOKEN: ${{ secrets.DOCKERHUB }} | |
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
make push | |
- name: List generated Docker images | |
run: docker image ls --filter "label=atc0005.go-ci" --format "table {{.Repository}}\t{{.Tag}}\t{{.ID}}\t{{.Size}}" | |
- name: Generate pre-release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
if: contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') | |
run: | | |
echo Generating pre-release | |
gh release create ${{ github.ref_name }} \ | |
--verify-tag \ | |
--prerelease \ | |
--discussion-category 'Dev/Release Candidate' \ | |
--generate-notes | |
- name: Generate stable release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# https://github.com/orgs/community/discussions/26712 | |
if: ${{ !(contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc')) }} | |
run: | | |
echo Generating stable release | |
gh release create ${{ github.ref_name }} \ | |
--verify-tag \ | |
--latest \ | |
--discussion-category 'Stable Release' \ | |
--generate-notes |