-
Notifications
You must be signed in to change notification settings - Fork 1
100 lines (94 loc) · 3.13 KB
/
release-build.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: Release (and build Golang binaries)
# This workflow should eventually replace the one in release.yml completely.
permissions:
contents: "write"
# Eventually this workflow will only be run when a
#on:
# push:
# tags:
# - 'v[0-9]+.*'
# Typically we'd only want to build binaries and a release when a new tag is
# pushed. But since this is a new projectu I'm doing it on every new commit to
# the master branch. This will make it easy to download and test binaries for
# each new version.
on:
push:
branches:
- master
# TODO: Uncomment once this is merged and we're ready to prepare the first
# public tagged version of the Golang implementation.
#jobs:
# release:
# runs-on: ubuntu-latest
# steps:
# - uses: GoogleCloudPlatform/release-please-action@v4
# name: create release
# with:
# release-type: simple
# bump-minor-pre-major: true # remove this to enable breaking changes causing 1.0.0 tag
# changelog-types: |
# [
# { "type": "feat", "section": "Features", "hidden": false },
# { "type": "fix", "section": "Patches", "hidden": false },
# { "type": "docs", "section": "Documentation", "hidden": false }
# ]
# extra-files: |
# SECURITY.md
# docs/guide/getting-started.md
# docs/pt-br/guide/getting-started.md
# docs/zh-hans/guide/getting-started.md
jobs:
create-release:
name: create-release
runs-on: ubuntu-22.04
# env:
# Set to force version number, e.g., when no tag exists.
# ASDF_VERSION: TEST-0.1.0
outputs:
upload_url: ${{ steps.release.outputs.upload_url }}
asdf_version: ${{ env.ASDF_VERSION }}
steps:
- name: Get the release version from the tag
shell: bash
if: env.ASDF_VERSION == ''
run: |
# Apparently, this is the right way to get a tag name. Really?
#
# See: https://github.community/t5/GitHub-Actions/How-to-get-just-the-tag-name/m-p/32167/highlight/true#M1027
#echo "ASDF_VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
echo "ASDF_VERSION=${GITHUB_SHA::7}" >> "$GITHUB_ENV"
echo "version is: ${{ env.ASDF_VERSION }}"
- uses: actions/checkout@v3
- name: Create GitHub release
id: release
uses: ncipollo/release-action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag: ${{ env.ASDF_VERSION }}
name: ${{ env.ASDF_VERSION }}
build:
needs: create-release
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
-
name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.21.5'
cache: true
-
name: Run GoReleaser
# Downgraded to version 4 to get snapshot feature working
uses: goreleaser/goreleaser-action@v4
with:
distribution: goreleaser
version: latest
args: release --clean --snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}