Skip to content

Commit

Permalink
Add goreleaser to release automatically CLI tool (#15)
Browse files Browse the repository at this point in the history
* Add goreleaser to release automatically md2confl

* Update release workflow name

* Add build info by using idflags

* Add lint ignore block
  • Loading branch information
kentaro-m authored Aug 8, 2021
1 parent 5db56e3 commit 338f9d3
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 7 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release CLI Tool

on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"

permissions:
contents: write

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.16

- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
distribution: goreleaser
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@
release/
vendor/
_vendor-*
dist/
76 changes: 76 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
before:
hooks:
- go mod tidy
builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- windows
- darwin
ldflags:
- -s -w -X github.com/kentaro-m/md2confl/cmd.version={{.Version}} -X github.com/kentaro-m/md2confl/cmd.commit={{.Commit}} -X github.com/kentaro-m/md2confl/cmd.date={{.Date}} -X github.com/kentaro-m/md2confl/cmd.builtBy=goreleaser
archives:
- replacements:
darwin: Darwin
linux: Linux
windows: Windows
386: i386
amd64: x86_64
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ .Tag }}-next"
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'
brews:
-
name: md2confl

# NOTE: make sure the url_template, the token and given repo (github or gitlab) owner and name are from the
# same kind. We will probably unify this in the next major version like it is done with scoop.

# GitHub/GitLab repository to push the formula to
# Gitea is not supported yet, but the support coming
tap:
owner: kentaro-m
name: homebrew-md2confl

# Template for the url which is determined by the given Token (github or gitlab)
url_template: "http://github.com/kentaro-m/md2confl/releases/download/{{ .Tag }}/{{ .ArtifactName }}"

# Git author used to commit to the repository.
# Defaults are shown.
commit_author:
name: goreleaserbot
email: [email protected]

# Folder inside the repository to put the formula.
# Default is the root folder.
folder: Formula

# Your app's homepage.
# Default is empty.
homepage: "https://github.com/kentaro-m/md2confl"

# Template of your app's description.
# Default is empty.
description: "md2confl is a CLI tool to convert the markdown text to confluence wiki format."

# SPDX identifier of your app's license.
# Default is empty.
license: "MIT"

# So you can `brew test` your formula.
# Default is empty.
test: |
system "#{bin}/md2confl --version"
# Custom install script for brew.
# Default is 'bin.install "program"'.
install: |
bin.install "md2confl"
17 changes: 10 additions & 7 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ import (
"golang.org/x/term"
)

// Current version number
const (
VERSION = "0.2.0"
//nolint // these variables are set in build step
var (
version = "dev"
commit = "none"
date = "unknown"
builtBy = "unknown"
)

var (
version bool
isShowVersion bool
)

var rootCmd = &cobra.Command{
Expand All @@ -34,8 +37,8 @@ var rootCmd = &cobra.Command{
// Run executes md2confl command
func Run(cmd *cobra.Command, args []string) error {

if version {
fmt.Fprintf(os.Stdout, "v%v\n", VERSION)
if isShowVersion {
fmt.Fprintf(os.Stdout, "v%v\n", version)
return nil
}

Expand Down Expand Up @@ -78,7 +81,7 @@ func output(input []byte) {

func init() {
cobra.EnableCommandSorting = false
rootCmd.Flags().BoolVarP(&version, "version", "v", false, "Output the version number")
rootCmd.Flags().BoolVarP(&isShowVersion, "version", "v", false, "Output the version number")
}

// Execute runs the root Cmd
Expand Down

0 comments on commit 338f9d3

Please sign in to comment.