mirror of
https://github.com/asdf-vm/asdf.git
synced 2024-12-24 20:35:03 -07:00
57f2c97f86
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
102 lines
3.2 KiB
YAML
102 lines
3.2 KiB
YAML
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
|
|
# Once we're using this for real releases we'll want to change this
|
|
# line below to contain the actual tag name
|
|
echo "ASDF_VERSION=0.0.0" >> "$GITHUB_ENV"
|
|
echo "version is: ${{ env.ASDF_VERSION }}"
|
|
- uses: actions/checkout@v4
|
|
- 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:
|
|
version: latest
|
|
args: release --clean --snapshot
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|