Skip to content

Workflow: release +minor #2

Workflow: release +minor

Workflow: release +minor #2

Workflow file for this run

name: Build on ubuntu and maybe release
on:
push:
pull_request:
jobs:
build:
env:
RELEASE_OS: ubuntu-24.04
RELEASE_GOVER: "1.22"
strategy:
fail-fast: false
matrix:
os: [ ubuntu-24.04, ubuntu-22.04, ubuntu-20.04 ]
gover: [ "1.22", "1.21", 1.20" ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/[email protected]
with:
go-version: ${{ matrix.gover }}
- uses: actions/checkout@v4
- name: Build the project
run: go build .
- name: Save built binary
if: startsWith(github.ref, 'refs/tags/') && ${{ matrix.os }} == ${{ env.RELEASE_OS }} && ${{ matrix.gover }} == ${{ env.RELEASE_GOVER }}
uses: actions/upload-artifact@v4
with:
name: docker-on-top
path: ./docker-on-top
if-no-files-found: error
retention-days: 1
release:
needs: build
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Prepare release notes
run: |
# Assert that the changelog begins with this release
head -1 CHANGELOG.md | grep -E "^# ${{ github.ref_name }}$"
# Extract the part of changelog for this release (until next first-level heading)
tail -n +2 CHANGELOG.md | sed '/^# /q' | head -n-1 > this-changelog.md
- name: Restore built binary
uses: actions/download-artifact@v4
with:
name: docker-on-top
path: ./docker-on-top
- name: Release new version
uses: softprops/action-gh-release@v2
with:
body_path: ${{ github.workspace }}/this-changelog.md
files: |
./docker-on-top
./docker-on-top.service