Signed-off-by: Carlos Alexandro Becker <caarlos0@gmail.com>
5.9 KiB
title |
---|
Announce |
GoReleaser can also announce new releases to Twitter, Reddit, Slack, Discourse and Microsoft Teams.
It runs at the very end of the pipeline and can be skipped with the --skip-announce
flag of
the release
command.
For it to work, you'll need to create a new Twitter app, and set some environment variables on your pipeline:
TWITTER_CONSUMER_KEY
TWITTER_CONSUMER_SECRET
TWITTER_ACCESS_TOKEN
TWITTER_ACCESS_TOKEN_SECRET
Then, you can add something like the following to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
twitter:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# Message template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .GitURL }}/releases/tag/{{ .Tag }}`
message_template: 'Awesome project {{.Tag}} is out!'
Teams
To use Teams, you need to create a Webhook , and set following environment variable on your pipeline:
TEAMS_WEBHOOK
After this, you can add following section to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
teams:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# Title template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out!`
title_template: 'GoReleaser {{ .Tag }} was just released!'
# Message template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .GitURL }}/releases/tag/{{ .Tag }}`
message_template: 'Awesome project {{.Tag}} is out!'
# Color code of the message. You have to use hexadecimal.
# Defaults to `#2D313E` - the grey-ish from goreleaser
color: ''
# URL to an image to use as the icon for the message.
# Defaults to `https://goreleaser.com/static/avatar.png`
icon_url: ''
Discord
To use Discord, you need to create a Webhook, and set following environment variables on your pipeline:
DISCORD_WEBHOOK_ID
DISCORD_WEBHOOK_TOKEN
After this, you can add following section to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
discord:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# Message template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .GitURL }}/releases/tag/{{ .Tag }}`
message_template: 'Awesome project {{.Tag}} is out!'
# Set author of the embed.
# Defaults to `GoReleaser`
author: ''
# Color code of the embed. You have to use decimal numeral system, not hexadecimal.
# Defaults to `3888754` - the grey-ish from goreleaser
color: ''
# URL to an image to use as the icon for the embed.
# Defaults to `https://goreleaser.com/static/avatar.png`
icon_url: ''
Slack
For it to work, you'll need to create a new Incoming Webhook, and set some environment variables on your pipeline:
SLACK_WEBHOOK
Then, you can add something like the following to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
slack:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# Message template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out! Check it out at {{ .GitURL }}/releases/tag/{{ .Tag }}`
message_template: 'Awesome project {{.Tag}} is out!'
# The name of the channel that the user selected as a destination for webhook messages.
channel: '#channel'
# Set your Webhook's user name.
username: ''
# Emoji to use as the icon for this message. Overrides icon_url.
icon_emoji: ''
# URL to an image to use as the icon for this message.
icon_url: ''
!!! tip Learn more about the name template engine.
For it to work, you'll need to create a new Reddit app, and set some environment variables on your pipeline:
REDDIT_SECRET
REDDIT_PASSWORD
Then, you can add something like the following to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
reddit:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# Application ID for Reddit Application
application_id: ""
# Username for your Reddit account
username: ""
# URL template to use while publishing.
# Defaults to `{{ .GitURL }}/releases/tag/{{ .Tag }}`
url_template: 'https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}'
# Title template to use while publishing.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out!`
title_template: ''GoReleaser {{ .Tag }} was just released!''
SMTP
For it to work, you'll need to set some environment variables on your pipeline:
SMTP_PASSWORD
Then, you can add something like the following to your .goreleaser.yml
config:
# .goreleaser.yml
announce:
smtp:
# Whether its enabled or not.
# Defaults to false.
enabled: true
# SMTP Host
host: "smtp.gmail.com"
# SMTP Port
port: 587
# Sender of the email
from: ""
# Receivers of the email
to:
- ""
- ""
# Owner of the email
username: ""
# Body template to use within the email.
# Defaults to `You can view details from: {{ .GitURL }}/releases/tag/{{ .Tag }}`
body_template: 'https://github.com/goreleaser/goreleaser/releases/tag/{{ .Tag }}'
# Subject template to use within the email subject.
# Defaults to `{{ .ProjectName }} {{ .Tag }} is out!`
subject_template: ''GoReleaser {{ .Tag }} was just released!''