Skip to content

Commit ba75f7b

Browse files
committed
add release workflow for generating binaries
1 parent 55c9541 commit ba75f7b

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

.github/workflows/release.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
name: Make release
2+
3+
on:
4+
release:
5+
types: [created]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout project
16+
uses: actions/checkout@v4
17+
- name: Setup Go
18+
uses: actions/setup-go@v4
19+
with:
20+
go-version: '1.22'
21+
- name: Prepare source tarball
22+
run: |
23+
git clone -b ${{ github.event.release.name }} --depth 1 https://github.com/schollz/croc croc-${{ github.event.release.name }}
24+
cd croc-${{ github.event.release.name }} && go mod tidy && go mod vendor
25+
cd .. && tar -czvf croc_${{ github.event.release.name }}_src.tar.gz croc-${{ github.event.release.name }}
26+
- name: Build files
27+
run: |
28+
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o croc.exe
29+
zip croc_${{ github.event.release.name }}_Windows-64bit.zip croc.exe
30+
GOOS=windows GOARCH=386 go build -ldflags="-s -w" -o croc.exe
31+
zip croc_${{ github.event.release.name }}_Windows-32bit.zip croc.exe
32+
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o croc
33+
upx --brute croc
34+
tar -czvf croc_${{ github.event.release.name }}_Linux-64bit.tar.gz croc
35+
GOOS=linux GOARCH=386 go build -ldflags="-s -w" -o croc
36+
tar -czvf croc_${{ github.event.release.name }}_Linux-32bit.tar.gz croc
37+
GOOS=linux GOARCH=arm go build -ldflags="-s -w" -o croc
38+
upx --brute croc
39+
tar -czvf croc_${{ github.event.release.name }}_Linux-ARM.tar.gz croc
40+
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o croc
41+
upx --brute croc
42+
tar -czvf croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz croc
43+
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o croc
44+
tar -czvf croc_${{ github.event.release.name }}_macOS-64bit.tar.gz croc
45+
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o croc
46+
tar -czvf croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz croc
47+
- name: Create checksums.txt
48+
run: |
49+
touch croc_${{ github.event.release.name }}_checksums.txt
50+
sha256sum croc_${{ github.event.release.name }}_src.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
51+
sha256sum croc_${{ github.event.release.name }}_Windows-64bit.zip >> croc_${{ github.event.release.name }}_checksums.txt
52+
sha256sum croc_${{ github.event.release.name }}_Windows-32bit.zip >> croc_${{ github.event.release.name }}_checksums.txt
53+
sha256sum croc_${{ github.event.release.name }}_Linux-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
54+
sha256sum croc_${{ github.event.release.name }}_Linux-32bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
55+
sha256sum croc_${{ github.event.release.name }}_Linux-ARM.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
56+
sha256sum croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
57+
sha256sum croc_${{ github.event.release.name }}_macOS-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
58+
sha256sum croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt
59+
- name: Release
60+
uses: softprops/action-gh-release@v1
61+
with:
62+
files: |
63+
croc_${{ github.event.release.name }}_checksums.txt
64+
croc_${{ github.event.release.name }}_src.tar.gz
65+
croc_${{ github.event.release.name }}_Windows-64bit.zip
66+
croc_${{ github.event.release.name }}_Windows-32bit.zip
67+
croc_${{ github.event.release.name }}_Linux-64bit.tar.gz
68+
croc_${{ github.event.release.name }}_Linux-32bit.tar.gz
69+
croc_${{ github.event.release.name }}_Linux-ARM.tar.gz
70+
croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz
71+
croc_${{ github.event.release.name }}_macOS-64bit.tar.gz
72+
croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz
73+

0 commit comments

Comments
 (0)