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 }}