* outlines gitlab client integration * makes client parameter more explicit * adds gitlab url to config * changes releaseID to string to adapt to gitlab * updates to latest gitlab client lib 0.18 * fixes copy paster in gitlab upload func * fixes gitlab typo in config * adds gitlab token to env and context * release now uses the client factory method * skips brew pipe if it is not a github release * add github tokentype to publish tests * skips scoop pipe if it is not a github release * corrects brew skip msg * adds gitlab token to main test * adds gitlab to release docs * validates config and errors accordingly * adapt release pipe name to include gitlab * fixes gitlab client after testing * moves not-configured brew and scoop pipe checks as first check * adds more debug to gitlab client * adapts changelog generation for gitlab markdown * adds debug log for gitlab changelog * env needs to run before changelog pipe * moves gitlab default download url to default pipe * moves multiple releases check to from config to release pipe * release differs now for github and gitlab * adds debug gitlab release update msgs * moves env pipe as second after before because it determines the token type other pipes depend on * adaptes error check on gitlab release creation * Revert "adaptes error check on gitlab release creation" This reverts commit 032024571c76140f8e2207ee01cc08088f37594b. * simplifies gitlab client logic. removes comments * skips tls verification for gitlab client if specified in config * updates the docs * adds clarification that brew and scoop are not supported if it is a gitlab release * fixes copy paster in release.md * adds missing blob pipe in defaults and publish due to missing in merge * updates comment in gitlab client
2.8 KiB
title | weight | menu |
---|---|---|
Environment | 20 | true |
GitHub Token
GoReleaser requires either a GitHub API token with the repo
scope selected to
deploy the artifacts to GitHub or a GitLab API token with api
scope.
You can create one here for GitHub or here for GitLab.
This token should be added to the environment variables as GITHUB_TOKEN
or a GITLAB_TOKEN
respecively.
Here is how to do it with Travis CI:
Defining Variables in Repository Settings.
Alternatively, you can provide the GitHub/GitLab token in a file. GoReleaser will check ~/.config/goreleaser/github_token
or ~/.config/goreleaser/gitlab_token
by default, you can change that in
the .goreleaser.yml
file:
# .goreleaser.yml
env_files:
# use only one or release will fail!
github_token: ~/.path/to/my/gh_token
gitlab_token: ~/.path/to/my/gl_token
IMPORTANT: you can define both env files, but the release process will fail because both tokens are defined. Use only one.
GitHub Enterprise
You can use GoReleaser with GitHub Enterprise by providing its URLs in
the .goreleaser.yml
configuration file:
# .goreleaser.yml
github_urls:
api: https://git.company.com/api/v3/
upload: https://git.company.com/api/uploads/
download: https://git.company.com/
# set to true if you use a self-signed certificate
skip_tls_verify: false
If none are set, they default to GitHub's public URLs.
GitLab Enterprise or private hosted
You can use GoReleaser with GitHub Enterprise by providing its URLs in
the .goreleaser.yml
configuration file:
# .goreleaser.yml
gitlab_urls:
api: https://gitlab.mycompany.com/api/v4/
download: https://gitlab.company.com
# set to true if you use a self-signed certificate
skip_tls_verify: false
If none are set, they default to GitLab's public URLs.
The dist folder
By default, GoReleaser will create its artifacts in the ./dist
folder.
If you must, you can change it by setting it in the .goreleaser.yml
file:
# .goreleaser.yml
dist: another-folder-that-is-not-dist
Using the main.version
Default wise GoReleaser sets three ldflags:
main.version
: Current Git tag (thev
prefix is stripped) or the name of the snapshot, if you're using the--snapshot
flagmain.commit
: Current git commit SHAmain.date
: Date according RFC3339
You can use it in your main.go
file:
package main
import "fmt"
var (
version = "dev"
commit = "none"
date = "unknown"
)
func main() {
fmt.Printf("%v, commit %v, built at %v", version, commit, date)
}
You can override this by changing the ldflags
option in the build
section.