mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-12-23 11:55:13 -07:00
feat(golang-rewrite): setup Golang release GitHub workflow
This commit is contained in:
parent
3f9744df0f
commit
c5092c6dbf
98
.github/workflows/release-build.yml
vendored
Normal file
98
.github/workflows/release-build.yml
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
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" >> "$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:
|
||||
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'
|
||||
-
|
||||
name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@v5
|
||||
with:
|
||||
# either 'goreleaser' (default) or 'goreleaser-pro'
|
||||
distribution: goreleaser
|
||||
version: latest
|
||||
args: release --clean
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
Loading…
Reference in New Issue
Block a user