Skip to content

Commit 2183e1e

Browse files
committed
Improve release process and testing automatic release on new tag using Travis
1 parent 120d0be commit 2183e1e

File tree

4 files changed

+66
-8
lines changed

4 files changed

+66
-8
lines changed

.goreleaser.yml

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,35 @@ archive:
2222
release:
2323
draft: true
2424

25-
fpm:
25+
snapshot:
26+
name_template: "{{.Tag}}"
27+
28+
nfpm:
2629
vendor: Task
2730
homepage: https://github.com/go-task/task
2831
maintainer: Andrey Nering <[email protected]>
2932
description: Simple task runner written in Go
3033
license: MIT
34+
conflicts:
35+
- taskwarrior
3136
formats:
3237
- deb
3338
- rpm
39+
40+
brew:
41+
name: go-task
42+
github:
43+
owner: go-task
44+
name: homebrew-tap
45+
commit_author:
46+
name: Andrey Nering
47+
48+
folder: Formula
49+
homepage: https://github.com/go-task/task
50+
description: Task runner / simpler Make alternative written in Go
51+
conflicts:
52+
- taskwarrior
53+
install: |
54+
bin.install "task"
55+
test: |
56+
system "#{bin}/task", "--help"

.travis.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,25 @@
11
language: go
2+
23
go:
34
- '1.8'
45
- '1.9'
56
- '1.10'
7+
8+
addons:
9+
apt:
10+
packages:
11+
- rpm
12+
613
script:
714
- go install github.com/go-task/task/cmd/task
815
- task dl-deps
916
- task lint
1017
- task test
18+
19+
deploy:
20+
- provider: script
21+
skip_cleanup: true
22+
script: curl -sL http://git.io/goreleaser | bash
23+
on:
24+
tags: true
25+
condition: $TRAVIS_OS_NAME = linux

RELEASING_TASK.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Releasing Task
2+
3+
The release process of Task is done is done with the help of
4+
[GoReleaser][goreleaser]. You can test the release process locally by calling
5+
the `test-release` task of the Taskfile.
6+
7+
The Travis CI should release automatically when a new
8+
Git tag is pushed to master, either for the artifact uploading (raw executables
9+
and DEB and RPM packages) and publishing of a new version in the
10+
[Homebrew tap][homebrewtap].
11+
12+
# Snapcraft
13+
14+
The exception is the publishing of a new version of the
15+
[snap package][snappackage]. This current require two steps after publishing
16+
the binaries:
17+
18+
* Updating the current version on [snapcraft.yaml][snapcraftyaml];
19+
* Moving either the `i386` and `amd64` new artifacts to the stable channel on
20+
the [Snapscraft dashboard][snapcraftdashboard]
21+
22+
[goreleaser]: https://goreleaser.com/#continuous_integration
23+
[homebrewtap]: https://github.com/go-task/homebrew-tap
24+
[snappackage]: https://github.com/go-task/snap
25+
[snapcraftyaml]: https://github.com/go-task/snap/blob/master/snap/snapcraft.yaml#L2
26+
[snapcraftdashboard]: https://dashboard.snapcraft.io/

Taskfile.yml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,10 @@ tasks:
3939
cmds:
4040
- go test {{.GO_PACKAGES}}
4141

42-
# https://github.com/goreleaser/goreleaser
43-
release:
44-
desc: Release Task
45-
cmds:
46-
- goreleaser
47-
4842
test-release:
4943
desc: Tests release process without publishing
5044
cmds:
51-
- goreleaser --snapshot
45+
- goreleaser --snapshot --rm-dist
5246

5347
todo:
5448
desc: Prints TODO comments present in the code

0 commit comments

Comments
 (0)