Skip to content

Commit 95d5c87

Browse files
authored
ci: release and publish assets when push tags (#14)
* ci: add release and upload asset * ci: update go check branches * ci: format release.yml
1 parent 8b90a26 commit 95d5c87

File tree

3 files changed

+117
-2
lines changed

3 files changed

+117
-2
lines changed

.github/workflows/go.yml

+10-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
11
name: Go
2-
on: [push, pull_request]
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- main
7+
- develop
8+
pull_request:
9+
branches:
10+
- main
11+
- master
312
jobs:
413

514
build:

.github/workflows/release.yml

+105
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- 'v*'
6+
7+
jobs:
8+
9+
build:
10+
name: Build and Upload Release
11+
runs-on: macos-latest
12+
steps:
13+
14+
- name: Set up Go 1.13
15+
uses: actions/setup-go@v1
16+
with:
17+
go-version: 1.13
18+
id: go
19+
20+
- name: Check out code into the Go module directory
21+
uses: actions/checkout@v1
22+
23+
- name: Get dependencies
24+
run: |
25+
go get -v -t -d ./...
26+
if [ -f Gopkg.toml ]; then
27+
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
28+
dep ensure
29+
fi
30+
31+
- name: Test
32+
run: go test -v github.com/befovy/fvm/...
33+
34+
- name: Build for Linux
35+
run: |
36+
env GOOS=linux GOARCH=amd64 go build -v .
37+
zip -j fvm-linux-amd64.zip fvm
38+
39+
- name: Build for Mac OS
40+
run: |
41+
env GOOS=darwin GOARCH=amd64 go build -v .
42+
zip -j fvm-macos-amd64.zip fvm
43+
44+
- name: Build for Windows
45+
run: |
46+
env GOOS=windows GOARCH=amd64 go build -v .
47+
zip -j fvm-windows-amd64.zip fvm.exe
48+
env GOOS=windows GOARCH=386 go build -v .
49+
zip -j fvm-windows-386.zip fvm.exe
50+
51+
52+
- name: Create Release
53+
id: create_release
54+
uses: actions/create-release@v1
55+
env:
56+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
57+
with:
58+
tag_name: ${{ github.ref }}
59+
release_name: Release ${{ github.ref }}
60+
draft: false
61+
prerelease: false
62+
63+
- name: Upload Linux Release Asset
64+
id: upload-linux-release-asset
65+
uses: actions/upload-release-asset@v1
66+
env:
67+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
68+
with:
69+
upload_url: ${{ steps.create_release.outputs.upload_url }}
70+
asset_path: ./fvm-linux-amd64.zip
71+
asset_name: fvm-linux-amd64.zip
72+
asset_content_type: application/zip
73+
74+
- name: Upload Mac OS Release Asset
75+
id: upload-macos-release-asset
76+
uses: actions/upload-release-asset@v1
77+
env:
78+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
79+
with:
80+
upload_url: ${{ steps.create_release.outputs.upload_url }}
81+
asset_path: ./fvm-macos-amd64.zip
82+
asset_name: fvm-macos-amd64.zip
83+
asset_content_type: application/zip
84+
85+
- name: Upload Windows amd64 Release Asset
86+
id: upload-windows-amd64-release-asset
87+
uses: actions/upload-release-asset@v1
88+
env:
89+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
90+
with:
91+
upload_url: ${{ steps.create_release.outputs.upload_url }}
92+
asset_path: ./fvm-windows-amd64.zip
93+
asset_name: fvm-windows-amd64.zip
94+
asset_content_type: application/zip
95+
96+
- name: Upload Windows x86 Release Asset
97+
id: upload-windows-386-release-asset
98+
uses: actions/upload-release-asset@v1
99+
env:
100+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101+
with:
102+
upload_url: ${{ steps.create_release.outputs.upload_url }}
103+
asset_path: ./fvm-windows-386.zip
104+
asset_name: fvm-windows-386.zip
105+
asset_content_type: application/zip

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ fvm.iml
33
.DS_Store
44

55
# binary
6-
fvm
6+
fvm
7+
fvm.exe

0 commit comments

Comments
 (0)