Giter Site home page Giter Site logo

goreleaser / goreleaser-action Goto Github PK

View Code? Open in Web Editor NEW
810.0 810.0 71.0 7.59 MB

GitHub Action for GoReleaser

Home Page: https://github.com/marketplace/actions/goreleaser-action

License: MIT License

Go 0.32% TypeScript 80.47% HCL 5.41% Dockerfile 13.80%
actions github-actions golang goreleaser hacktoberfest

goreleaser-action's Introduction

GoReleaser Logo

GoReleaser

Deliver Go binaries as fast and easily as possible.


GoReleaser builds Go binaries for several platforms, creates a GitHub release and then pushes a Homebrew formula to a tap repository. All that wrapped in your favorite CI.


Get GoReleaser

Documentation

Documentation is hosted live at https://goreleaser.com

Community

You have questions, need support and or just want to talk about GoReleaser?

Here are ways to get in touch with the GoReleaser community:

Join Discord Follow Twitter GitHub Discussions

You can find the links above and all others here.

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. We appreciate your contribution. Please refer to our contributing guidelines for further information.

Badges

Release Software License Build status Codecov branch Artifact Hub Go Doc Powered By: GoReleaser Backers on Open Collective Sponsors on Open Collective Conventional Commits CII Best Practices

GitHub Sponsors

High-tier sponsors of @caarlos0 on GitHub:

OpenCollective

Sponsors

Does your company use goreleaser? Help keep the project bug-free and feature rich by sponsoring the project.

Backers

Love our work and community? Become a backer.

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Stargazers over time

Stargazers over time

goreleaser-action's People

Contributors

arnaduga avatar arunvelsriram avatar boazy avatar caarlos0 avatar crazy-max avatar danawoodman avatar dependabot-preview[bot] avatar dependabot[bot] avatar dirien avatar felladrin avatar flarco avatar gavincabbage avatar jamietanna avatar kbdharun avatar kishaningithub avatar morwn avatar radeksimko avatar renovate-bot avatar vedantmgoyal9 avatar zdtsw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

goreleaser-action's Issues

Failing builds with snaps snapcore/action-build github action

First off thanks for creating this action and workign on goreleaser. I already have releases being built on auto for vx.x.x tags and a homebrew formula out there which was very painless. Merci for all this hard work.

I am not trying to get builds for snap (and eventually flatpak) working to make life easier for my friends in linux land. For some reason I keep having a fail on the snapcraft goreleaser section though am failing to understand why as I am using a handy other github action that installs snap and lxd for me.

I opened an issue with the author of that action here but he thinks it is something goreleaser action related. I think getting this sorted would be great for go folks wanting to release easily into linux so just trying to stickhandle sorting this out (and will write a blog post on it later so people can find a formula on it.).

I altered my release.yml file to look like this:

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      - name: Snap Action Build
        uses: snapcore/action-build@v1
      -
        name: Unshallow
        run: git fetch --prune --unshallow
      -
        name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.14.3
      -
        name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GORELEASER_HARSH_SECRET }}

I've lifted the snapcraft section out of the goreleaser.yml and hjave proper keys so pretty sure that's working. But just wondering if there is something specific the action is expecting in terms of snap installation on the GH instance.

The author mentioned that a number of things happen with the action as it is non-trivial to get working:

  1. change ownership of / to root:root, since GH's VM image has weird permissions.
  2. install snapd with apt.
  3. remove the lxd and lxd-client` apt packages, so they don't conflict with the newer snap version.
  4. install the lxd snap.
  5. run sudo lxd init --auto to set up a default configuration for LXD.
  6. add the CI user to the lxd group.
  7. install the snapcraft snap
  8. set SNAPCRAFT_BUILD_ENVIRONMENT=lxd in the environment
  9. invoke Snapcraft with sg lxd -c snapcraft to pick up the new group membership needed to create LXD containers.

Is there anything in there you see that might cause this to fail from the goreleaser action? Obviosuly jsut trying to get everthing up and working in an automated hands-off fashion. =]

thanks!
Daryl.

FreeBSD/arm64 is not supported by Go

Action fails during build trying to build FreeBSD/arm64:

⨯ release failed after 172.59s error=failed to build for freebsd_arm64: cmd/go: unsupported GOOS/GOARCH pair freebsd/arm64

workflow step

      - name: Run GoReleaser
        uses: goreleaser/[email protected]
        with:
          version: latest
          args: release --rm-dist
          key: ${{ secrets.YOUR_PRIVATE_KEY }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

config

before:
  hooks:
    - go mod tidy
    - go generate ./...
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - darwin
      - linux
      - freebsd
      - windows
    goarch:
      - amd64
      - arm
      - arm64
    goarm:
      - 6
      - 7
    ignore:
      - goos: darwin
        goarch: 386

archives:
  - replacements:
      darwin: macOS

    format: zip

    files:
      - none*
checksum:
  name_template: 'checksums.txt'
snapshot:
  name_template: "{{ .Tag }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - '^docs:'
      - '^test:'

Docker authorization?

I can't find any info in the documentation on how to provide Docker credentials to the goreleaser Action.
Is this not supported?

Workflow error: git executable not found.

Hello,

I am having problems running my github actions CI both locally and github.
Actually I get this error running the following

$ act -v --env-file .env -s GITHUB_TOKEN
| ✅ GoReleaser installed successfully
| 📂 Using ./cmd/certyphoto/ as working directory...
[Release Go project/GoReleaser build]   ❗  ::error::Unable to locate executable file: git. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.
[Release Go project/GoReleaser build]   ❌  Failure - Run GoReleaser
DEBU[0089] exit with `FAILURE`: 1                       
Error: exit with `FAILURE`: 1

My workflow:

name: Release Go project

on:
  push:
    tags:
      - "*" # triggers only if push new tag version, like `0.8.4` or else

jobs:
  build:
    name: GoReleaser build
    runs-on: ubuntu-latest

    steps:

      - name: Check out code into the Go module directory
        uses: actions/checkout@v2
        with:
          fetch-depth: 0 # See: https://goreleaser.com/ci/actions/

      - name: setup env
        shell: bash
        run: |
          echo "::set-env name=GOPATH::${{ github.workspace }}/go"
          echo "::add-path::${{ github.workspace }}/go/bin"

      - name: Set up Go 1.15
        uses: actions/setup-go@v2
        with:
          go-version: 1.15
        id: go

      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@master
        with:
          version: latest
          args: release --rm-dist
          workdir: ./cmd/certyphoto/
        env:
          GITHUB_TOKEN: ${{ secrets.GO_RELEASER_GITHUB_TOKEN }}

The project is hosted on a private github repository.
My main.go is in; ./cmd/certyphoto/main.go
Don't know what to try more.. :-)

stuck in "snapshot" even though command is "release"

Steps:

  1. Create action using defaults
      - name: GoReleaser Action
        uses: goreleaser/[email protected]
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  1. Create .goreleaser.yml with mostly defaults (path defined for main)

Expectation:
GitHub release created

Outcome:

🏃 Running GoReleaser...
/home/runner/work/_temp/9ea6a3b8-6367-433e-9f2f-54a5fcc8cd99/goreleaser release --rm-dist --snapshot

Why is it adding --snapshot ?

picked incorrect tag for release

Using the following config:

name: Release

on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+*' # semver v1.0.0-beta.2

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      -
        name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.14
      -
        name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

goreleaser failed to use the correct tag.

  1. I had tagged a v1.1.0-rc.1 and goreleaser created a proper release.
  2. I tagged v1.1.0 on the same commit... and goreleaser re-created the v1.1.0-rc.1 release.

My expectation was that it create a new release on the v1.1.0 label.

Install only option

Thanks for a great project!

Would it be possible to add an "install only" option so that gorelease could be used in the following steps?
In our project, we use a script in our release pipeline and I had hoped to use this action to install goreleaser before running our own script.

-
  name: Setup GoReleaser
  uses: goreleaser/goreleaser-action@v2
  with:
    version: v0.145.0
    install-only: true

The expected outcome of using something like the above would be that goreleaser would be installed and added to the path, allowing goreleaser to be called from scripts in a pipeline.

Let me know if you need additional information.

Unable to include folder in archive

I have the following project structure:

- server
  - main.go
  - public
  - .goreleaser.yml
- frontend

When I run goreleaser locally bin/goreleaser --snapshot --skip-publish --rm-dist it creates an archive with my specified folder, below a part of the config:

...
archives:
  -
    name_template: "{{ .ProjectName }}_{{ tolower .Os }}_{{ tolower .Arch }}"
    files:
      - public/**/*
...

But when the github action is creating a build, it does not include the public folder in the archive.
I specified the working directory:

-
        name: Release
        uses: goreleaser/goreleaser-action@v1
        with:
          version: latest
          workdir: server
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Find below the action: https://github.com/q-assistant/controller/actions/runs/89358207

Parse goreleaser version as semver

Version currently seems to be parsed as fixed string. This leaves users with two sub-optimal options of either setting version to latest, or to an exact patch version (vMAJOR.MINOR.PATCH).

  1. When they set it to latest they risk broken releases once goreleaser cuts new major version.
  2. When they set it to exact patch version they don't receive any updates, including potentially important security updates.

I believe it would be best if version was parsed as semver and specifying just major version was allowed, e.g.

      -
        name: Release
        uses: goreleaser/goreleaser-action@v1
        with:
          version: v0
          args: release --rm-dist

That way users would receive any v0.X.Y updates, but (crucially) not potentially breaking v1.

This also aligns with how version of GitHub Actions works.

Once this is supported I'd also go as far as recommending this as the default option by updating the example in the Readme, which currently has latest.

Github Action Homebrew authorization scope documentation

Writing this in free form as I don't think it fits well with the template.

Github Action documentation tells people to use predefined GITHUB_TOKEN secret.

env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

That secret is set by Github and the token's permissions are limited to the repository that contains your workflow.

While this is enough to publish repository releases, it is not enough if changes need to be made in another repository. I would expect that is the common case when using goreleaser to publish to Homebrew taps.
To make it work, user can create access token with correct scope manually and adding as a secret in the repository with goreleaser Github Action.

env:
          GITHUB_TOKEN: ${{ secrets. GORELEASER_GITHUB_TOKEN }}

This was mentioned in the documentation in 6809172 but removed in a7f049e
This should be somehow covered in the Github Action documentation.

It would be nice if Github would allow more fine grained control over the scope of the generated GITHUB_TOKEN secret. But this is how it works for now.

Feature request: non-tag "release" to actions artifacts

It'd be nice if there was a way to have goreleaser create artifacts for PRs (and other non-tag runs) but instead of pushing an actual github release, it just uploads the artifacts to the actions run like actions/upload-artifact.

This would be particularly useful when working on cgo-requiring projects where building locally is annoying. (Push a branch, wait for action to run, get artifacts from the actions run.)

I have a hunch this might be possible without code changes, in which case please treat this issue as a request for an example workflow yaml. :)

Cross compile with CGO dependencies?

I've been using this project to build linux, darwin, and windows binaries and it's worked great (thank you!). However, recently I've added a module that relies on cgo, which to my understanding is not directly supported by goreleaser itself. Is it possible to use this GitHub Action with cgo, or is that something I'll need to roll my own Docker container for?

Some additional build details in case that's helpful

My .goreleaser.yml has:

builds:
- env:
  - CGO_ENABLED=1

Failing build: https://github.com/plentico/plenti/runs/946698117#step:8:128

Commit messages limited to the last commit

Hi,

I'd like to have the full changelog in the Github release between versions. When I run goreleaser with action, there is only the last one, however when I'm running it locally, it works as it should. Are this limitations due to Action?

Do you have any suggestions?

Thanks

Requirement of GITHUB_REF causing limitations

Hi all,

The change to require a GITHUB_REF for the action to run is causing some inconveniences that will limit adoption of this action.

If you want GITHUB_REF to be populated with a tag, the action trigger event needs to be something like on: create or on: release which is usually fine.

The problem is, if you're using another project to manage your tags and releases like https://github.com/semantic-release/github, then those tag events are created (by default) using the default GH Action token.

This GH Action Token is special in that it does NOT trigger other events as to avoid an infinite loop. This is an explicit feature/decision by the GH Actions team.

This means that I couldn't have semantic-release run as one workflow to trigger the goreleaser workflow, but ideally no human is the one pushing tags.

This leaves us with one of two options:

You could create a personal access token for whatever flow is pushing tags. Since it's a PAT, the on: release and on: create workflows will trigger. This is not ideal because now you have to create a PAT which means you have to tie that execution to a person. Since there's no way to create organizational access tokens, you'll have to create another user to be a service user in GitHub which could cost you money.

The second option is to install goreleaser directly to the GitHub Action Runner itself like so:

    - env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      run: |
        curl -Lo /tmp/goreleaser.tar.gz https://github.com/goreleaser/goreleaser/releases/download/v0.120.3/goreleaser_Linux_x86_64.tar.gz
        tar -xzvf /tmp/goreleaser.tar.gz -C /tmp/
        /tmp/goreleaser release

This is not ideal because now I'm coupled to expectations of what is installed in the Runner environment, instead of getting an isolated container to run in.

Could we remove the requirement of a GITHUB_REF?

build fails when copying symlinks

Within a docker build it is failing on copying a symlink within an extra-files directory. The desired behavior is that the symlink is copied as is, not followed. This worked up until v0.174.0 and appears to have been broken by goreleaser/goreleaser@f37c045

release failed after 83.32s error=failed to copy extra file '<somedirectory>': failed to open '<': open <somedirectory>/<symlink>: no such file or directory

Cannot login to ghcr.io

I'm trying to have my goreleaser upload images to ghcr.io. To do that I have:

Unfortunately, it fails to push with:

The push refers to repository [ghcr.io/daenney/gdqbot]
b3b3f5b6a923: Preparing
fb0113d63c91: Preparing
960cfde826a2: Preparing
denied: unauthenticated: User cannot be authenticated with the token provided.
: exit status 1
Error: The process '/opt/hostedtoolcache/goreleaser-action/0.149.0/x64/goreleaser' failed with exit code 1

I feel like I'm probably missing something incredibly obvious but I'm not sure what.

--release-notes + process substitution fails => unknown shorthand flag

I manage my changelog by hand and wrote a custom tool for my project to extract the appropriate section from the changelog and add that as release notes. But the solution proposed in the documentation doesn't work with the action. It works locally, so I guess the issue is related to the action.

This is the workflow step:

- name: Release
  uses: goreleaser/goreleaser-action@v2
  with:
    args: release --rm-dist --release-notes <(./bin/changelog-extractor -f=CHANGELOG.md -t=${{ steps.tagName.outputs.tag }})
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

This results in the following output:

🏃 Running GoReleaser...
/opt/hostedtoolcache/goreleaser-action/0.145.0/x64/goreleaser release --rm-dist --release-notes <(./bin/changelog-extractor -f=CHANGELOG.md -t=v0.1.0)command failed            error=unknown shorthand flag: 't' in -t=v0.1.0)
Error: The process '/opt/hostedtoolcache/goreleaser-action/0.145.0/x64/goreleaser' failed with exit code 1

Github Action Plugin is failing validating the signed goreleaser binary

Hello,
Using the gorelaser github action.

I'm getting the following error

Error

gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
##[error]The process '/usr/bin/gpg' failed with exit code 2

Full Error

✅ GoReleaser version found: v0.132.1
⬇️ Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.132.1/goreleaser_Linux_x86_64.tar.gz...
📦 Extracting GoReleaser...
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/bccc5fef-9525-4910-9f30-4acebe213f61 -f /tmp/goreleaser-OwL3RR/goreleaser_Linux_x86_64.tar.gz
✅ v1.1.0 tag found for commit 7566ebc
🔑 Importing signing key...
/usr/bin/gpg --import /home/runner/key.asc
gpg: directory '/home/runner/.gnupg' created
gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
##[error]The process '/usr/bin/gpg' failed with exit code 2

Github Action Configuration

on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
      - 'v*.*.*' # Push events to matching v*, i.e. v1.0, v20.15.10
  
name: Create Release

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
      -
        name: Unshallow
        run: git fetch --prune --unshallow
      -
        name: Set up Go 1.14.x
        uses: actions/setup-go@v1
        with:
          go-version: 1.14.x
      -
        name: Run GoReleaser
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        uses: goreleaser/goreleaser-action@v1
        with:
          args: release --skip-sign
          key: ${{ secrets.RELEASE_KEY }}

Failing Github Action

https://github.com/crosseyed/prjstart/runs/619750827?check_suite_focus=true

hook failed: go mod download: exit status 1

use alone action file can release success

.github/workflows/go.yml

name: Go

on:
  create:
    tags:
    - v*


jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      -
        name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.15
      -
        name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

but,default release not build for windows ,i want to build for windwos,so use the .goreleaser.yml

env:
  - GO111MODULE=on
  - GOPROXY=https://goproxy.io

before:
  hooks:
    - go mod download

builds:
  -
    env:
      - CGO_ENABLED=0
    goos:
      - darwin
      - linux
      - windows
    goarch:
      - 386
      - amd64

archives:
  -
    replacements:
      386: i386
      amd64: x86_64
    format_overrides:
      - goos: windows
        format: zip
    files:
      - LICENSE
      - README.md
      - CHANGELOG.md

checksum:
  name_template: 'checksums.txt'

action run failed with the error:

✅ GoReleaser version found: v0.159.0
⬇️ Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.159.0/goreleaser_Linux_x86_64.tar.gz...
📦 Extracting GoReleaser...
/usr/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/6f3ed5c7-943d-4dd5-a664-ec9a561a19ef -f /home/runner/work/_temp/f2e938e1-13ee-406e-96e1-157300492ed3
✅ GoReleaser installed successfully
✅ v1.1 tag found for commit '64f29c4'
🏃 Running GoReleaser...
/opt/hostedtoolcache/goreleaser-action/0.159.0/x64/goreleaser release --rm-dist
   • releasing...     
   • loading config file       file=.goreleaser.yml
   • loading environment variables
   • getting and validating git state
      • releasing v1.1, commit 64f29c4121330e4fc9753bbd879436d963b034e7
   • parsing tag      
   • running before hooks
      • running go mod download
   ⨯ release failed after 0.03s error=hook failed: go mod download: exit status 1; output: go mod download: no modules specified (see 'go help mod download')

Error: The process '/opt/hostedtoolcache/goreleaser-action/0.159.0/x64/goreleaser' failed with exit code 1

have any error with my .yaml or other ways to build for windwos with gtihub action ?
thanks u !

Unable to create first release

I am trying to get my first release going and I think the order in which operations are handled is causing publishing to be skipped no matter what. https://github.com/miniscruff/changie/runs/1586648055?check_suite_focus=true

From the logs:

✅ GoReleaser version found: v0.149.0
⬇️ Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.149.0/goreleaser_Linux_x86_64.tar.gz...
📦 Extracting GoReleaser...
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/12b4050d-0926-4d1f-8daa-4096fc877af9 -f /home/runner/work/_temp/fe7bcb1f-0fc6-4e18-b453-94ddef55c73f
✅ GoReleaser installed successfully
⚠️ No tag found for commit 'e152889'. Snapshot forced
🏃 Running GoReleaser...
/opt/hostedtoolcache/goreleaser-action/0.149.0/x64/goreleaser release --rm-dist --skip-validate --release-notes=changes/v0.1.0.md --snapshot
   • releasing...     
   • loading config file       file=.goreleaser.yml
   • loading environment variables
   • getting and validating git state
      • releasing v0.1.0, commit e152889fab61ac26f2a32daac1d34ef3cdd622c7
      • pipe skipped              error=disabled during snapshot mode
   • parsing tag      

I am using a separate release file and tag, however, because the project is new I do not have any existing tags and thus the snapshot flag is forced. This means my project never gets published. The tag is later read from the environment variables but by then it is too late. I tried adding --skip-validate but it seems snapshot has higher precendence.

Repro steps should be:

  1. Create new repo
  2. Add goreleaser
  3. Specify tag and release notes file
  4. Build will never publish

Action failing: Command failed: git describe --tags --abbrev=0

The same commits in my repo which were previously passing are now failing

Run goreleaser/goreleaser-action@v1
✅ GoReleaser version found: v0.126.0
⬇️ Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.126.0/goreleaser_Linux_x86_64.tar.gz...
📦 Extracting GoReleaser...
/bin/tar --version
tar (GNU tar) 1.29
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
/bin/tar xz --warning=no-unknown-keyword -C /home/runner/work/_temp/04821171-ce64-41cd-84e3-68cb9f85226e -f /tmp/goreleaser-vE1CQY/goreleaser_Linux_x86_64.tar.gz
fatal: No names found, cannot describe anything.
##[error]Command failed: git describe --tags --abbrev=0
fatal: No names found, cannot describe anything.

##[error]Node run failed with exit code 1

gpg: signing failed: Inappropriate ioctl for device

In attempting to use the GPG signing functionality as documented with the use of crazy-max/ghaction-import-gpg I can't seem to find a way around the following error when GoReleaser gets to the signing pipe:

      • signing                   cmd=[gpg --batch -u BF9DE7B4E2AD83A41CFD7713280CAB053A042287 --output dist/protomy-v0.0.0-SNAPSHOT-c05f10f-checksums.txt.sig --detach-sign dist/protomy-v0.0.0-SNAPSHOT-c05f10f-checksums.txt]
      • gpg: signing failed: Inappropriate ioctl for device

(See here for the full action log)

I've been comparing back and forth between my own GitHub workflow configuration and the one in use by this repository's own CI workflow, but can't seem to spot any differences between the two that could lead to this error, which has been confounding given that the CI workflow for goreleaser/gorelease-action itself is passing, with virtually the same configuration other than the key itself.

Seems as though there's been a similar issue referenced elsewhere in actions/runner#241 (comment) but again that would be confusing given that the workflow is passing in the GoReleaser action's own tests 😄

Full changelog is not uploaded to release page

Describe the bug

When releasing with goreleaser, I see that the correct content dist/CHANGELOG.md but on the release page I only see the first line. I suspect this is a problem with my CI because I use github actions and there isn't an easy way for me to be able to debug this. I am hoping you can shed some light.

To Reproduce

Steps to reproduce the behavior:

before:
  hooks:
    - npm run clean
    - npm run build
    - packr -z
builds:
  - env:
      - CGO_ENABLED=0
    goos:
      - linux
      - darwin
    goarch:
      - amd64
      - arm
      - arm64
archives:
  - replacements:
      amd64: 64-bit
      386: 32-bit
      arm64: ARM_64-bit
      arm: ARM_32-bit
      linux: Linux
      darwin: Darwin
checksum:
  name_template: "checksums.txt"
snapshot:
  name_template: "{{ .Tag }}-next"
changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"
dockers:
  - image_templates:
      - "amir20/dozzle:{{ .Tag }}"
      - "amir20/dozzle:v{{ .Major }}.{{ .Minor }}"
      - amir20/dozzle:latest
    build_flag_templates:
      - "--label=org.label-schema.schema-version=1.0"
      - "--label=org.label-schema.build-date={{.Date}}"
      - "--label=org.label-schema.vcs-ref={{.ShortCommit}}"
      - "--label=org.label-schema.version={{.Version}}"
      - "--label=org.label-schema.name=Dozzle"
      - "--label=org.label-schema.url=https://dozzle.dev/"
      - "--label=org.label-schema.vcs-url=https://github.com/amir20/dozzle"
      - "--label=org.label-schema.description=Dozzle is a real-time log viewer for docker containers."

Expected behavior

When I run goreleaser --rm-dist --debug --skip-validate --skip-publish I get a changelog that looks like this:

## Changelog

b41f315 1.20.6
376ee2d Adds compression

However, as seen here only the first line is displayed.

Additional context
I am using Github actions to create the release. Here is my Dockerfile that prepares the environment.

Any help would be appreciated to get the right changelog.

Not working 'workdir'

I tried to use workdir option on CI. But not worked the option.

The message 📂 Using XXX as working directory... is not outputted.

if (workdir && workdir !== '.') {
core.info(`📂 Using ${workdir} as working directory...`);
process.chdir(workdir);
}

Screenshot:

image

workflow:

      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v1
        with:
          version: latest
          args: release --rm-dist
          key: ${{ secrets.YOUR_PRIVATE_KEY }}
          workdir: ${{ github.workspace }}/go/src/github.com/${{ github.repository }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Please let me know if you find any other solutions for that.

` The `set-env` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/`

Hi 👋,

When running actions using goreleaser-action, I get this warning message:

The `set-env` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

Screenshot - Manfred 2020-10-07 at 17 16 15


From what I can see, it should come from this:

* ::set-env name=MY_VAR::some value

I would be happy to contribute but I don't have experience in GitHub actions and I will take some time, except maybe if someone can help me be onboarded on this project?

Thank you for this project 👍

Can't use alternative checkout path

const commit = yield git.getShortCommit();
const tag = yield git.getTag();
const isTagDirty = yield git.isTagDirty(tag);
if (workdir && workdir !== '.') {
core.info(`📂 Using ${workdir} as working directory...`);
process.chdir(workdir);
}

If I checkout my code into another directory so that I can set a $GOPATH:

      - name: Check out code into the Go module directory
        uses: actions/checkout@v2
        with:
          path: ${{ github.workspace }}/src/github.com/abatilo/my_repository

Since it appears that this action tries to get the git hash BEFORE doing any changing of directories, there is no .git directory in the starting directory of the action.

goreleaser-action downloads i386 version of installer on arm64

I'm trying to use goreleaser on an arm64 self-hosted runner (Raspberry Pi 4) but it's downloading the i386 version (which subsequently fails to execute):

Run goreleaser/goreleaser-action@v2
  with:
    distribution: goreleaser
    version: v0.175.0
    args: release --rm-dist
    workdir: .
    install-only: false
  env:
    GOROOT: /tmp/actions-runner/_work/_tool/go/1.16.7/arm64
    GITHUB_TOKEN: ***
Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.175.0/goreleaser_Linux_i386.tar.gz
Extracting GoReleaser

From my runner:

$ uname -m
aarch64

From my release.yml:

jobs:
  goreleaser:
    runs-on: ARM64
    steps:
      -
        name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      -
        name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.16
      -
        name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        with:
          distribution: goreleaser
          version: v0.175.0
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

How to build for Windows

Naively I thought that adding a file to my repo would make goreleaser build for Windows, too:

# .goreleaser.yml
builds:
  - goos:
      - darwin
      - linux
      - windows
    goarch:
      - amd64
      - arm64

It seems however that goreleaser Action does not pick up that file. How can I tell goreleaser to also build for Windows then?

Undocumented or incorrect prerelease behavior

(This is more or less a support question, but I am framing it as a documentation issue. Thanks for this awesome tool!)

When I create a prerelease 'release' in the GH UI, goreleaser-action will unset the 'prerelease' flag. I then chase goreleaser by resetting the prerelease flag.

I see that there is some logic to detect prerelease tags in goreleaser, and I assume that if I follow this pattern or redefine this pattern, I should find goreleaser automatically flagging prereleases.

The documentation that I see today about GH prerelease is https://goreleaser.com/customization/release/ and https://goreleaser.com/customization/templates/.

Is it possible to define a matching prerelease pattern in goreleaser-action syntax? (my pattern is v3.2.0-alpha.3)
If this pattern is already in the default format, is there a bug in the handling?

This project is the GH Action project for goreleaser. PreRelease is one of ~five fields on the GH Release page.
Users would benefit from some documentation about this feature in the README.md if not elsewhere.

My build is using https://github.com/equinix/terraform-provider-metal/blob/88f7ef8/.github/workflows/release.yml#L39-L47

bug: git tag: uses first tag that matches commit and not the latest

This is technically more related to goreleaser itself and not the action, however I think reporting it under the action repo still makes sense due to the type of bug.

I've got a workflow setup so when I push to any tag, it will automatically build and release it on GitHub:
https://github.com/lrstanley/links/blob/master/.github/workflows/release.yml

However, there is a problem where if I tag the same commit twice (i.e. triggering it to rebuild the code with a different Go version as an example), it still only picks the FIRST tag that relates to that commit.

As you can see in the following build output (I've since deleted the new v0.5.3 tag, but this log still exists), you can see GitHub sees the new tag, and it clones the git repository down with that tag, however goreleaser is still using the v0.5.2 tag:
https://github.com/lrstanley/links/runs/1392634281?check_suite_focus=true

That is likely due to goreleaser using the following command (or something similar):

$ git describe --tags a1d277ff3b61a39d61f1ed135c97643ad054d8aa
v0.5.2

However, we can see with the following command, that two tags actually relate to the commit:

$ git tag --contains a1d277ff3b61a39d61f1ed135c97643ad054d8aa
v0.5.2
v0.5.3

You may wonder why I am even retagging the same commit. This is because there isn't a super easy way of automating goreleaser to rebuild, retag, and release the same code, but with a newer version of Go, at least with GitHub actions today. If the code doesn't need to be changed, there isn't really any kind of commit that needs to happen, to qualify for goreleaser to pick it up.


  1. Is there a way I can pass the specific tag to be used to goreleaser, via this action, since it doesn't use what actions/checkout is providing? Or, is there a way goreleaser can notice that actions/checkout checked out a specific tag, and use that tag?
  2. Does it make sense for goreleaser to use the first tag that relates to the commit, not the latest tag that relates to the commit, by default?

Logs from actions/checkout...:

2020-11-12T20:30:33.2634625Z ##[group]Fetching the repository
2020-11-12T20:30:33.2645932Z [command]/usr/bin/git -c protocol.version=2 fetch --prune --progress --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/*
[...]
2020-11-12T20:30:34.1552511Z Resolving deltas: 100% (455/455), done.
2020-11-12T20:30:34.1553020Z From https://github.com/lrstanley/links
2020-11-12T20:30:34.1554275Z  * [new branch]      master     -> origin/master
2020-11-12T20:30:34.1555089Z  * [new tag]         v0.1.0     -> v0.1.0
2020-11-12T20:30:34.1555846Z  * [new tag]         v0.1.1     -> v0.1.1
2020-11-12T20:30:34.1556577Z  * [new tag]         v0.2.0     -> v0.2.0
2020-11-12T20:30:34.1557245Z  * [new tag]         v0.2.1     -> v0.2.1
2020-11-12T20:30:34.1558021Z  * [new tag]         v0.2.2     -> v0.2.2
2020-11-12T20:30:34.1558814Z  * [new tag]         v0.2.3     -> v0.2.3
2020-11-12T20:30:34.1559555Z  * [new tag]         v0.2.4     -> v0.2.4
2020-11-12T20:30:34.1560275Z  * [new tag]         v0.2.5     -> v0.2.5
2020-11-12T20:30:34.1561010Z  * [new tag]         v0.3.0     -> v0.3.0
2020-11-12T20:30:34.1561719Z  * [new tag]         v0.3.1     -> v0.3.1
2020-11-12T20:30:34.1562630Z  * [new tag]         v0.3.2     -> v0.3.2
2020-11-12T20:30:34.1563381Z  * [new tag]         v0.4.0     -> v0.4.0
2020-11-12T20:30:34.1564117Z  * [new tag]         v0.4.1     -> v0.4.1
2020-11-12T20:30:34.1564900Z  * [new tag]         v0.4.2     -> v0.4.2
2020-11-12T20:30:34.1565648Z  * [new tag]         v0.4.3     -> v0.4.3
2020-11-12T20:30:34.1566361Z  * [new tag]         v0.4.4     -> v0.4.4
2020-11-12T20:30:34.1567087Z  * [new tag]         v0.4.5     -> v0.4.5
2020-11-12T20:30:34.1567804Z  * [new tag]         v0.5.0     -> v0.5.0
2020-11-12T20:30:34.1568541Z  * [new tag]         v0.5.1     -> v0.5.1
2020-11-12T20:30:34.1569223Z  * [new tag]         v0.5.2     -> v0.5.2
2020-11-12T20:30:34.1569955Z  * [new tag]         v0.5.3     -> v0.5.3
2020-11-12T20:30:34.1570719Z [command]/usr/bin/git tag --list v0.5.3
2020-11-12T20:30:34.1571300Z v0.5.3
2020-11-12T20:30:34.1572053Z [command]/usr/bin/git rev-parse refs/tags/v0.5.3
2020-11-12T20:30:34.1572842Z a1d277ff3b61a39d61f1ed135c97643ad054d8aa
2020-11-12T20:30:34.1574117Z ##[endgroup]
2020-11-12T20:30:34.1574815Z ##[group]Determining the checkout info
2020-11-12T20:30:34.1575412Z ##[endgroup]
2020-11-12T20:30:34.1575954Z ##[group]Checking out the ref
2020-11-12T20:30:34.1576891Z [command]/usr/bin/git checkout --progress --force refs/tags/v0.5.3
2020-11-12T20:30:34.1577859Z Note: switching to 'refs/tags/v0.5.3'.
[...]
2020-11-12T20:30:34.1587959Z HEAD is now at a1d277f fix: behind-proxy used on incorrect router
2020-11-12T20:30:34.1588482Z ##[endgroup]
2020-11-12T20:30:34.1589115Z [command]/usr/bin/git log -1 --format='%H'
2020-11-12T20:30:34.1590208Z 'a1d277ff3b61a39d61f1ed135c97643ad054d8aa'

Logs from goreleaser:

/opt/hostedtoolcache/goreleaser-action/0.147.0/x64/goreleaser release --rm-dist --skip-validate --release-header=notes-header.md --release-footer=notes-footer.md

   • releasing...     
   • loading config file       file=.goreleaser.yml
   • loading environment variables
   • getting and validating git state
      • releasing v0.5.2, commit a1d277ff3b61a39d61f1ed135c97643ad054d8aa
      • pipe skipped              error=validation is disabled
   • parsing tag      
   • running before hooks
   • setting defaults 
      • snapshotting     
      • github/gitlab/gitea releases
      • project name     
      • building binaries
      • creating source archive
      • archives         
      • linux packages   
      • snapcraft packages
      • calculating checksums
      • signing artifacts
      • docker images    
      • artifactory      
      • blobs            
      • homebrew tap formula
      • scoop manifests  
      • milestones       
   • snapshotting     
      • pipe skipped              error=not a snapshot
   • checking ./dist  
   • writing effective config file
      • writing                   config=dist/config.yaml
   • generating changelog
      • writing                   changelog=dist/CHANGELOG.md
   • building binaries
      • building                  binary=/home/runner/work/links/links/dist/links_freebsd_amd64/links
      • building                  binary=/home/runner/work/links/links/dist/links_linux_amd64/links
      • building                  binary=/home/runner/work/links/links/dist/links_windows_amd64/links.exe
   • archives         
      • creating                  archive=dist/links_0.5.2_freebsd_amd64.tar.gz
      • creating                  archive=dist/links_0.5.2_linux_amd64.tar.gz
      • creating                  archive=dist/links_0.5.2_windows_amd64.zip
   • creating source archive
      • pipe skipped              error=source pipe is disabled
   • linux packages   
      • creating                  file=dist/links_0.5.2_linux_amd64.rpm
      • creating                  file=dist/links_0.5.2_linux_amd64.deb
   • snapcraft packages
   • calculating checksums
      • checksumming              file=links_0.5.2_linux_amd64.rpm
      • checksumming              file=links_0.5.2_windows_amd64.zip
      • checksumming              file=links_0.5.2_freebsd_amd64.tar.gz
      • checksumming              file=links_0.5.2_linux_amd64.deb
      • checksumming              file=links_0.5.2_linux_amd64.tar.gz
   • signing artifacts
   • docker images    
      • pipe skipped              error=docker section is not configured
   • publishing       
      • blobs            
         • pipe skipped              error=blobs section is not configured
      • http upload      
         • pipe skipped              error=uploads section is not configured
      • custom publisher 
         • pipe skipped              error=publishers section is not configured
      • artifactory      
         • pipe skipped              error=artifactory section is not configured
      • docker images    
      • snapcraft packages
      • github/gitlab/gitea releases
         • creating or updating release repo=lrstanley/links tag=v0.5.2
         • release updated           url=https://github.com/lrstanley/links/releases/tag/v0.5.2
         • uploading to release      file=dist/links_0.5.2_checksums.txt name=links_0.5.2_checksums.txt
         • uploading to release      file=dist/links_0.5.2_linux_amd64.tar.gz name=links_0.5.2_linux_amd64.tar.gz
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • uploading to release      file=dist/links_0.5.2_windows_amd64.zip name=links_0.5.2_windows_amd64.zip
         • failed to upload artifact, will retry artifact=links_0.5.2_windows_amd64.zip error=POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_windows_amd64.zip: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}] try=1
         • uploading to release      file=dist/links_0.5.2_linux_amd64.deb name=links_0.5.2_linux_amd64.deb
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52738->140.82.113.13:443: write: broken pipe try=1
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.tar.gz": write tcp 10.1.0.4:52736->140.82.113.13:443: use of closed network connection try=1
         • failed to upload artifact, will retry artifact=links_0.5.2_checksums.txt error=POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_checksums.txt: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}] try=1
         • uploading to release      file=dist/links_0.5.2_linux_amd64.rpm name=links_0.5.2_linux_amd64.rpm
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • uploading to release      file=dist/links_0.5.2_linux_amd64.tar.gz name=links_0.5.2_linux_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.deb error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.deb": write tcp 10.1.0.4:52740->140.82.113.13:443: use of closed network connection try=1
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.rpm error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.rpm": write tcp 10.1.0.4:52742->140.82.113.13:443: use of closed network connection try=1
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52744->140.82.113.13:443: write: broken pipe try=2
         • uploading to release      file=dist/links_0.5.2_linux_amd64.deb name=links_0.5.2_linux_amd64.deb
         • uploading to release      file=dist/links_0.5.2_linux_amd64.rpm name=links_0.5.2_linux_amd64.rpm
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.tar.gz error=POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.tar.gz: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}] try=2
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.rpm error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.rpm": http: server closed idle connection try=2
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • uploading to release      file=dist/links_0.5.2_linux_amd64.rpm name=links_0.5.2_linux_amd64.rpm
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.deb error=POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.deb: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}] try=2
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52750->140.82.113.13:443: use of closed network connection try=3
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.rpm error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.rpm": EOF try=3
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • uploading to release      file=dist/links_0.5.2_linux_amd64.rpm name=links_0.5.2_linux_amd64.rpm
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52754->140.82.113.13:443: use of closed network connection try=4
         • failed to upload artifact, will retry artifact=links_0.5.2_linux_amd64.rpm error=POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_linux_amd64.rpm: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}] try=4
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52758->140.82.113.13:443: use of closed network connection try=5
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": EOF try=6
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52770->140.82.113.13:443: write: broken pipe try=7
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52772->140.82.113.13:443: use of closed network connection try=8
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52774->140.82.113.13:443: use of closed network connection try=9
         • uploading to release      file=dist/links_0.5.2_freebsd_amd64.tar.gz name=links_0.5.2_freebsd_amd64.tar.gz
         • failed to upload artifact, will retry artifact=links_0.5.2_freebsd_amd64.tar.gz error=Post "https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_freebsd_amd64.tar.gz": write tcp 10.1.0.4:52786->140.82.113.13:443: use of closed network connection try=10
   ⨯ release failed after 63.39s error=github/gitlab/gitea releases: failed to publish artifacts: failed to upload links_0.5.2_windows_amd64.zip after 1 tries: POST https://uploads.github.com/repos/lrstanley/links/releases/31633537/assets?name=links_0.5.2_windows_amd64.zip: 422 Validation Failed [{Resource:ReleaseAsset Field:name Code:already_exists Message:}]
Error: The process '/opt/hostedtoolcache/goreleaser-action/0.147.0/x64/goreleaser' failed with exit code 1

Change build output name

Hi, likely a silly question but I couldn't seem to locate the information for how to change the go build output filename? e.g. it generates a binary that's named the same as my repo but I'd like the name of the generated binary to be different to that.

I'm presuming I don't need to install goreleaser and run goreleaser init to generate a .goreleaser.yml to handle that?

I currently have just the single actions file: .github/workflows/tag_release.yml

name: Release
on:
  push:
    tags:
      - 'v*'
jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - name: Install Go
      uses: actions/setup-go@v2
      with:
        go-version: '1.15.x'
    - name: Run GoReleaser
      uses: goreleaser/goreleaser-action@v2
      with:
        version: latest
        args: release --rm-dist
        workdir: ./cmd
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Thanks!

Using release drafter in combination with goreleaser

I am using https://github.com/marketplace/actions/release-drafter to create a draft release for every PR. When I do a release with goreleaser with changelog skip to true it creates a new release instead of using the draft.
I was wondering if this should work and if so how? If not then it means I either need to accept I can only use goreleasers commits or maybe try to use https://github.com/buchanae/github-release-notes as input? Any other solutions or examples where people use PR for notes with goreleaser?

failed to change file path in github actions

Hi,

I want build two binaries, one is go-proxy/client/client.go, another is go-proxy/server/server.go

my release.yml

name: Release
on:
  create:
    tags:
      - v*

jobs:
  release:
    name: Release on GitHub
    runs-on: ubuntu-latest
    steps:
      - name: Check out code
        uses: actions/checkout@v1

      - name: Validates GO releaser config
        uses: docker://goreleaser/goreleaser:latest
        with:
          args: check

      - name: pwd
        run: pwd

      - name: Create client on GitHub
        uses: docker://goreleaser/goreleaser:latest
        with:
          args: release --rm-dist
          workdir: ./client/
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

      - name: Create server on GitHub
        uses: docker://goreleaser/goreleaser:latest
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

the github actions result, why the pwd is duplicated go-proxy ?

image

Question: How to authenticate in Docker hub?

Hi.

I'm trying to build a release and a docker image with GoReleaser using GH Actions. Building binaries works totally fine for me, but docker image fails to be pushed with:

release failed after 132.78s error=docker images: failed to publish artifacts: failed to push docker image: 
The push refers to repository [docker.io/hellofreshtech/kandalf]

e.g. https://github.com/hellofresh/kandalf/runs/980790191?check_suite_focus=true

The pipeline is available at https://github.com/hellofresh/kandalf/blob/master/.github/workflows/release.yml, the main part is:

      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v2
        if: startsWith(github.ref, 'refs/tags/')
        with:
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
          DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}

When I use GoReleaser locally in the container with the same credentials - I see a message that login to docker was successful (or failed if creds are invalid). I tried to look at the code of the action but did not find if it passes env vars to the releaser exec.

❯ docker run --rm -it -v ${PWD}:/app -w /app -e GITHUB_TOKEN=*** -e DOCKER_USERNAME=hellofreshtech -e DOCKER_PASSWORD=*** goreleaser/goreleaser:latest release --rm-dist
Login to the docker...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

   • releasing...
   • loading config file       file=.goreleaser.yml
...

Can't use --release-notes flag with process substitution

Hi,

I would like to use custom release notes by using process substitution as describe here.

I have written a simple tool that extracts the release info for a specific tag from my CHANGELOG.md file.

Locally this works as expected:

$ goreleaser --snapshot --skip-publish --rm-dist --release-notes <(go run tools/releaseinfo/main.go CHANGELOG.md "$(git describe --tags --abbrev=0)")
...

• generating changelog
      • loaded custom release notes file=/dev/fd/63
      • pipe skipped              error=not available for snapshots
...

However, I can't get this to work with goreleaser-action. Here is my GH workflow and GoReleaser config for your reference.

I have tried direct direct substitution like:

 - name: Run GoReleaser
      uses: goreleaser/goreleaser-action@v2
      with:
         version: latest
         args: release --rm-dist --release-notes <(go run tools/releaseinfo/main.go CHANGELOG.md "$(git describe --tags --abbrev=0)")

and I have tried writing the date to a file first and then using cat like:

- name: Get releaseinfo
     run: |
       mkdir build/
       go run tools/releaseinfo/main.go CHANGELOG.md "$(git describe --tags --abbrev=0)" > build/releaseinfo

- name: Run GoReleaser
     uses: goreleaser/goreleaser-action@v2
     with:
       version: latest
       args: release --rm-dist --release-notes <(cat build/releaseinfo)

but neither of the above methods work and I get no such file or directory errors like:

⨯ release failed after 4.10s error=open <(cat: no such file or directory

Can you tell what is the correct way of using process substitution and the --release-notes flag with goreleaser-action?

Should do nothing when not a tag commit?

Hi there,

I recently started using this action and it works great. Thanks for it!

But I noted that it always try to build even if the current commit is not a tag (it uses --snapshot in this case). While that may be useful to test the process, I think it's waste of resources and should be disabled most of the time.

IMO the ideal scenario would be to only run when a new tag is pushed. Unfortunately, seems that such event doesn't exist: https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows

So perhaps it would be just better to just return and do nothing when not a tag? I think this probably should be the default, and we'd have an argument to always run the build. If you disagree, we could at least have an argument to skip the build when not a tag.

Opinions?

What defaults are being used when no configuration is supplied?

I'm struggling to use this action and I am in need of some advice. I built a first version using a pretty bare-bones github workflow action with nothing out of the ordinary from the README.md. It did not include windows. Why didn't it? How do I know what is default and what needs to be specified in a .gorelease.yml?

<.Env.GOPATH>: map has no entry for key "GOPATH"

When trying to deploy this goreleaser-action to Gopass, we've stumble upon this problem:

    ⨯ release failed after 31.74s error=template: tmpl:1:20: executing "tmpl" at <.Env.GOPATH>: map has no entry for key "GOPATH"
Error: The process '/opt/hostedtoolcache/goreleaser-action/0.155.0/x64/goreleaser' failed with exit code 1

I'm not yet sure at what is the solution, but I guess it might have to do with the way environment variables are handled.

Our goreleaser.yml file look like this (and is at the root of our repo):

project_name: gopass

before:
  hooks:
    - make clean
    - make completion
    - go mod download

builds:
  - id: gopass
    binary: gopass
    flags:
      - -trimpath
      - -tags=netgo
    env:
      - CGO_ENABLED=0
    asmflags:
      - all=-trimpath={{.Env.GOPATH}}
    gcflags:
      - all=-trimpath={{.Env.GOPATH}}
    ldflags: |
      -s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.CommitDate}} -extldflags '-static'
    goos:
      - darwin
      - freebsd
      - linux
      - openbsd
      - windows
    goarch:
      - amd64
      - arm
      - arm64
    goarm:
      - 6
      - 7
    mod_timestamp: '{{ .CommitTimestamp }}'
archives:
  - id: gopass
    name_template: "{{.Binary}}-{{.Version}}-{{.Os}}-{{.Arch}}{{ if .Arm }}v{{.Arm }}{{ end }}"
    format: tar.gz
    format_overrides:
      - goos: windows
        format: zip
    files:
      - CHANGELOG.md
      - LICENSE
      - README.md
      - bash.completion
      - fish.completion
      - zsh.completion

release:
  github:
    owner: gopasspw
    name: gopass
  draft: false
  prerelease: auto

brews:
  - name: gopass
    tap:
      owner: gopasspw
      name: homebrew-gopass
    caveats:  |
      Gopass has been installed, have fun!
      If upgrading from `pass`, everything should work as expected.
      If installing from scratch, you need to either initialize a new repository now...
        gopass init
      ...or clone one from a source:
        gopass clone [email protected]:example/pass.git
      In order to use the great autocompletion features (they're helpful with gopass),
      please make sure you have autocompletion for homebrew enabled:
        https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
      More information:
        https://www.gopass.pw/
        https://github.com/gopasspw/gopass/README.md
    homepage: "https://www.gopass.pw/"
    description: "The slightly more awesome Standard Unix Password Manager for Teams."
    dependencies:
      - git
      - gnupg
      - terminal-notifier
    install:  |
      ENV["GOPATH"] = buildpath
      (buildpath/"src/github.com/gopasspw/gopass").install buildpath.children

      cd "src/github.com/gopasspw/gopass" do
        ENV["PREFIX"] = prefix
        system "make", "install"
      end

      system bin/"gopass completion bash > bash_completion.bash"
      system bin/"gopass completion zsh > zsh_completion.zsh"
      bash_completion.install "bash_completion.bash"
      zsh_completion.install "zsh_completion.zsh"
    test:  |
      assert_match version.to_s, shell_output("#{bin}/gopass version")
nfpms:
  - id: gopass
    vendor: Gopass Authors
    homepage: "https://www.gopass.pw"
    maintainer: "Gopass Authors <[email protected]>"
    license: MIT
    formats:
      - deb
      - rpm
    dependencies:
      - git
      - gnupg2
    recommends:
      - rng-tools
source:
  enabled: true
  name_template: "{{.ProjectName}}-{{.Version}}"
  
checksum:
  name_template: "{{.ProjectName}}_{{.Version}}_SHA256SUMS"

milestones:
  -
    repo:
      owner: gopasspw
      name: gopass
    close: true
    fail_on_error: false
    name_template: "{{ .Major }}.{{ .Minor }}.{{ .Patch }}"

signs:
  -
    id: gopass
    artifacts: checksum

Locally this works, but when using the Github Actions, it will fail.

Are you aware of any specificity regarding templating and goreleaser than might not work in an Action?

The process '/usr/bin/gpg' failed with exit code 2

Run goreleaser/goreleaser-action@v1
with:
version: latest
args: release --rm-dist
key: ***

workdir: .

env:
GOROOT: /opt/hostedtoolcache/go/1.14.1/x64
GITHUB_TOKEN: ***
✅ GoReleaser version found: v0.131.1
🔑 Importing signing key...
/usr/bin/gpg --import /home/runner/key.asc
gpg: directory '/home/runner/.gnupg' created
gpg: keybox '/home/runner/.gnupg/pubring.kbx' created
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
##[error]The process '/usr/bin/gpg' failed with exit code 2

error: "compile: version 'go1.14.7' does not match go tool version 'go1.15'" when using go 1.15

I received the following error when trying to run goreleaser with go 1.15 installed in the CI environment:

...
# runtime/internal/sys
compile: version "go1.14.7" does not match go tool version "go1.15"
...

Full logs from that failed run: https://github.com/sourcegraph/ds-to-dhall/runs/1038865701?check_suite_focus=true#step:6:59


Downgrading to go 1.14.7 "fixed" the issue. See:

"failed to build for" error only in Github Action

goreleaser release --rm-dist works fine locally but when I attempt to use the Github Action I get errors like the following:

##[error]   ⨯ release failed after 0.12s error=failed to build for windows_amd64: main.go:4:2: cannot find package "github.com/foo/bar/cmd" in any of:
	/opt/hostedtoolcache/go/1.10.8/x64/src/github.com/foo/bar/cmd (from $GOROOT)
	/home/runner/go/src/github.com/foo/bar/cmd (from $GOPATH)

##[error]The process '/home/runner/work/_temp/a863cb99-f622-4bb0-8758-b06964d5df78/goreleaser' failed with exit code 1
##[error]Node run failed with exit code 1

(note I've replaced my repo/project with foo/bar above)

The actual "failed build" message is not always the same OS/Arch (sometimes its Linux+Arm etc).

Here is my actions file:

name: Release

on:
  push:
    branches-ignore:
      - "**"
    tags:
      - "v*.*.*"

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master
      - name: Set up Go
        uses: actions/setup-go@master
      - name: Install upx
        run: sudo apt install upx -y
      - name: Run GoReleaser
        uses: goreleaser/goreleaser-action@v1
        with:
          version: latest
          args: release --rm-dist
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Am I missing something that I need to setup?

Also, I assum GITHUB_TOKEN is provided by the Github Actions runtime automatically?

Thanks!

No release diff is made by default, instead we've got a full diff

I had an issue with GitHub action because the tags are not fetch during the checkout:

git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules origin +8d947aad581ad4336e78402d53748741316ea7e7:refs/tags/v0.3.4

In order to get the diff commits instead of the full list of commits for each release made by tags, I had to add this:

- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*

I think it's a good idea to add it in the documentation as well.

Thanks

goreleaser failed if go version is 1.17 on ubuntu-latest

Configuration file: https://github.com/cybertec-postgresql/pg_timetable/blob/317_fix_goreleaser/.goreleaser.yml
Github Action file: https://github.com/cybertec-postgresql/pg_timetable/blob/317_fix_goreleaser/.github/workflows/build.yml

Recently I updated the Go version to 1.17:

    - name: Set up Golang
      uses: actions/setup-go@v2
      with:
        go-version: '1.17'

After this Goreleaser failed:

    - name: Run GoReleaser
      uses: goreleaser/goreleaser-action@v2
      with:
        version: latest
        args: release --snapshot --skip-publish --rm-dist

Output:

Run goreleaser/goreleaser-action@v2
  with:
    version: latest
    args: release --snapshot --skip-publish --rm-dist
    distribution: goreleaser
    workdir: .
    install-only: false
  env:
    GOROOT: /opt/hostedtoolcache/go/1.17.0/x64
Downloading https://github.com/goreleaser/goreleaser/releases/download/v0.176.0/goreleaser_Linux_x86_64.tar.gz
Extracting GoReleaser
/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/work/_temp/e60a269a-caae-4f12-95e4-4df3601333ae -f /home/runner/work/_temp/debebf54-f122-41e0-89cd-7324cc7cb8b5
GoReleaser latest installed successfully
No tag found for commit 'e6c8ed4'. Snapshot forced
/opt/hostedtoolcache/goreleaser-action/0.176.0/x64/goreleaser release --snapshot --skip-publish --rm-dist
   • releasing...     
   • loading config file       file=.goreleaser.yml
   • loading environment variables
   • getting and validating git state
      • ignoring errors because this is a snapshot error=git doesn't contain any tags. Either add a tag or use --snapshot
      • building...               commit=e6c8ed4708016c2e5ac6f6539e886815c34c2201 latest tag=v0.0.0
      • pipe skipped              error=disabled during snapshot mode
   • parsing tag      
   • running before hooks
      • running                   hook=go mod download
   • setting defaults 
      • snapshotting     
      • github/gitlab/gitea releases
      • project name     
      • loading go mod information
      • building binaries
      • creating source archive
      • archives         
      • linux packages   
      • snapcraft packages
      • calculating checksums
      • signing artifacts
      • signing docker images
      • docker images    
      • docker manifests 
      • artifactory      
      • blobs            
      • homebrew tap formula
      • scoop manifests  
      • twitter          
      • milestones       
   • snapshotting     
      • building snapshot...      version=0.0.0-SNAPSHOT-e6c8ed4
   • checking ./dist  
   • loading go mod information
   • writing effective config file
      • writing                   config=dist/config.yaml
   • generating changelog
      • pipe skipped              error=not available for snapshots
   • building binaries
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_windows_386/pg_timetable.exe
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_darwin_amd64/pg_timetable
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_linux_amd64/pg_timetable
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_linux_arm64/pg_timetable
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_linux_386/pg_timetable
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_windows_amd64/pg_timetable.exe
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_darwin_arm64/pg_timetable
      • building                  binary=/home/runner/work/pg_timetable/pg_timetable/dist/pg_timetable_windows_arm64/pg_timetable.exe
   ⨯ release failed after 0.75s error=failed to build for windows_386: exit status 1: go: updates to go.mod needed; to update it:
	go mod tidy

Error: The process '/opt/hostedtoolcache/goreleaser-action/0.176.0/x64/goreleaser' failed with exit code 1

The same configuration file on a Ubuntu local machine works like a charm:

pg_timetable$ goreleaser release --snapshot --skip-publish --rm-dist
   • releasing...     
   • loading config file       file=.goreleaser.yml
   • loading environment variables
   • getting and validating git state
      • building...               commit=18766e2ea3a7bf1aacaabc668f6a611d10ea21ec latest tag=v4.1.0
      • pipe skipped              error=disabled during snapshot mode
   • parsing tag
   • running before hooks
      • running                   hook=go mod download
   • setting defaults 
      • snapshotting
      • github/gitlab/gitea releases
      • project name     
      • loading go mod information
      • building binaries
      • creating source archive
      • archives
      • linux packages
      • snapcraft packages
      • calculating checksums
      • signing artifacts
      • signing docker images
      • docker images
      • docker manifests
      • artifactory
      • blobs
      • homebrew tap formula
      • scoop manifests
      • twitter
      • milestones
   • snapshotting     
      • building snapshot...      version=4.1.0-SNAPSHOT-18766e2
   • checking ./dist
      • --rm-dist is set, cleaning it up
   • loading go mod information
   • writing effective config file
      • writing                   config=dist/config.yaml
   • generating changelog
      • pipe skipped              error=not available for snapshots
   • building binaries
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_linux_amd64/pg_timetable
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_linux_386/pg_timetable
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_windows_386/pg_timetable.exe
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_windows_arm64/pg_timetable.exe
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_darwin_amd64/pg_timetable
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_windows_amd64/pg_timetable.exe
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_darwin_arm64/pg_timetable
      • building                  binary=/mnt/c/Users/pasha/Code/pg_timetable/dist/pg_timetable_linux_arm64/pg_timetable
   • archives
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Darwin_x86_64.tar.gz
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_i386.zip
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.tar.gz
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_x86_64.zip
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.tar.gz
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Darwin_arm64.tar.gz
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_arm64.zip
      • creating                  archive=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.tar.gz
   • creating source archive
   • linux packages
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.rpm
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.rpm
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.rpm
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.deb
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.deb
      • creating                  file=dist/pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.deb
   • snapcraft packages
   • calculating checksums
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.rpm
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.tar.gz
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.tar.gz
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.tar.gz
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_x86_64.zip
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_arm64.zip
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Windows_i386.zip
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Darwin_arm64.tar.gz
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.deb
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Darwin_x86_64.tar.gz
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.deb
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_i386.rpm
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_x86_64.deb
      • checksumming              file=pg_timetable_4.1.0-SNAPSHOT-18766e2_Linux_arm64.rpm
   • signing artifacts
   • docker images    
   • publishing
      • blobs
      • http upload
      • custom publisher
      • artifactory
      • docker images
         • pipe skipped              error=publishing is disabled
      • docker manifests
         • pipe skipped              error=publishing is disabled
      • snapcraft packages
         • pipe skipped              error=publishing is disabled
      • github/gitlab/gitea releases
         • pipe skipped              error=publishing is disabled
      • homebrew tap formula
      • scoop manifests
      • milestones
         • pipe skipped              error=publishing is disabled
   • signing docker images
      • pipe skipped              error=artifact signing is disabled
   • announcing
      • twitter
         • pipe skipped              error=announcing is disabled
   • release succeeded after 36.59s

Signed Commits for `Brews:`

I'm using goreleaser-action and it is amazing! We recently started using the Brews feature and are hoping to implement the scoop feature as well. The one issue I have run into is that our organization requires signed commits for all default branches. I see documentation on signing... but it seems like that is more like signing compiled bins. I have been trying to figure out how to use https://github.com/crazy-max/ghaction-import-gpg in conjunction with a service account access token to get the Brews: option to sign the commit when updating the formula. So far I have been unsuccessful. Is this even possible? If so, can documentation be provided for signed commits in github actions?

++@venkatkotta since you are dealing with this as well.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.