-
Notifications
You must be signed in to change notification settings - Fork 0
156 lines (155 loc) · 5.74 KB
/
go.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: Go
on:
push:
tags:
- 'v*'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21
uses: actions/setup-go@v1
with:
go-version: 1.21
- name: Check out code into the Go module directory
uses: actions/checkout@v1
- name: Get dependencies
run: go get -v -t -d ./...
- name: Set version environment
run: echo "VALAR_VERSION=$(echo ${GITHUB_REF:10})" >> $GITHUB_ENV
- name: Build
run: |
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags "-X valar/cli/cmd.version=$VALAR_VERSION -s -w -extldflags \"-static\"" -o valar_linux_amd64 .
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -a -tags netgo -ldflags "-X valar/cli/cmd.version=$VALAR_VERSION -s -w -extldflags \"-static\"" -o valar_linux_arm .
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -tags netgo -ldflags "-X valar/cli/cmd.version=$VALAR_VERSION -s -w -extldflags \"-static\"" -o valar_linux_arm64 .
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -a -tags netgo -ldflags "-X valar/cli/cmd.version=$VALAR_VERSION -s -w -extldflags \"-static\"" -o valar_darwin_amd64 .
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -a -tags netgo -ldflags "-X valar/cli/cmd.version=$VALAR_VERSION -s -w -extldflags \"-static\"" -o valar_darwin_arm64 .
- uses: actions/upload-artifact@v2
with:
name: valar_darwin_amd64
path: valar_darwin_amd64
- uses: actions/upload-artifact@v2
with:
name: valar_darwin_arm64
path: valar_darwin_arm64
- uses: actions/upload-artifact@v2
with:
name: valar_linux_amd64
path: valar_linux_amd64
- uses: actions/upload-artifact@v2
with:
name: valar_linux_arm
path: valar_linux_arm
- uses: actions/upload-artifact@v2
with:
name: valar_linux_arm64
path: valar_linux_arm64
release:
name: Release
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/download-artifact@v2
with:
name: valar_linux_arm
- uses: actions/download-artifact@v2
with:
name: valar_linux_arm64
- uses: actions/download-artifact@v2
with:
name: valar_linux_amd64
- uses: actions/download-artifact@v2
with:
name: valar_darwin_amd64
- uses: actions/download-artifact@v2
with:
name: valar_darwin_arm64
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: false
- name: Upload release asset (linux_amd64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./valar_linux_amd64
asset_name: valar_linux_amd64
asset_content_type: binary/octet-stream
- name: Upload release asset (linux_arm64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./valar_linux_arm64
asset_name: valar_linux_arm64
asset_content_type: binary/octet-stream
- name: Upload release asset (linux_arm)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./valar_linux_arm
asset_name: valar_linux_arm
asset_content_type: binary/octet-stream
- name: Upload release asset (darwin_amd64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./valar_darwin_amd64
asset_name: valar_darwin_amd64
asset_content_type: binary/octet-stream
- name: Upload release asset (darwin_arm64)
uses: actions/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./valar_darwin_arm64
asset_name: valar_darwin_arm64
asset_content_type: binary/octet-stream
homebrew:
name: Update homebrew-tap
runs-on: macos-latest
needs: [build, release]
steps:
- uses: actions/checkout@v2
- name: Setup SSH Keys and known_hosts
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
run: |
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add - <<< "${DEPLOY_KEY}"
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"
- name: Extract version
id: get_version
run: |
echo ::set-output name=version::${GITHUB_REF#refs/*/}
echo ::set-output name=short_version::$(echo ${GITHUB_REF#refs/*/} | cut -c2-)
- name: Bump archive version
env:
SSH_AUTH_SOCK: /tmp/ssh_agent.sock
run: |
brew tap valar/tap [email protected]:valar/homebrew-tap.git
cd $(brew --repo valar/tap)
brew bump-formula-pr --write-only \
--url=https://github.com/valar/cli/archive/refs/tags/${{ steps.get_version.outputs.version }}.tar.gz \
valar/tap/valar
git commit -a -m "Bump version to ${{ steps.get_version.outputs.version }}"
git push -u