* docs: enable instant Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: minify html Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: edit uri Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: remove uneeded meta Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * docs: several improvements Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com> * fix: broken links Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
3.6 KiB
title |
---|
Environment |
API Tokens
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 or a Gitea API token.
You can create one here for GitHub
or here for GitLab
or in Settings | Applications | Generate New Token
page of your Gitea instance.
This token should be added to the environment variables as GITHUB_TOKEN
or GITLAB_TOKEN
or GITEA_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
, ~/.config/goreleaser/gitlab_token
and ~/.config/goreleaser/gitea_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
gitea_token: ~/.path/to/my/gitea_token
!!! info you can define multiple env files, but the release process will fail because multiple 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 GitLab 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.
Gitea
You can use GoReleaser with Gitea by providing its URLs in
the .goreleaser.yml
configuration file:
# .goreleaser.yml
gitea_urls:
api: https://gitea.myinstance.com/api/v1/
# set to true if you use a self-signed certificate
skip_tls_verify: false
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"
builtBy = "unknown"
)
func main() {
fmt.Printf("my app %s, commit %s, built at %s by %s", version, commit, date, builtBy)
}
You can override this by changing the ldflags
option in the build
section.
Overriding Git Tags
You can force the build tag and previous changelog tag using environment variables. This is useful in cases where one git commit is referenced by multiple git tags.