-
Notifications
You must be signed in to change notification settings - Fork 2
62 lines (54 loc) · 1.75 KB
/
build_release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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