5
5
tags : ["v*"]
6
6
branches : ["main"]
7
7
8
+ permissions :
9
+ contents : write
10
+ packages : write
11
+
8
12
jobs :
9
13
docker :
10
14
runs-on : ubuntu-latest
21
25
- name : Build and push
22
26
uses : docker/build-push-action@v5
23
27
with :
24
- push : true
28
+ push : ${{ startsWith(github.ref, 'refs/tags/') }} # Only push on tags
25
29
tags : |
26
30
ghcr.io/${{ github.repository }}:latest
27
31
ghcr.io/${{ github.repository }}:${{ github.sha }}
@@ -37,15 +41,27 @@ jobs:
37
41
38
42
- name : Build binaries
39
43
run : |
44
+ # Build for each platform
40
45
GOOS=linux GOARCH=amd64 go build -o pg-archiver-linux-amd64
41
46
GOOS=darwin GOARCH=amd64 go build -o pg-archiver-darwin-amd64
42
47
GOOS=darwin GOARCH=arm64 go build -o pg-archiver-darwin-arm64
48
+ GOOS=windows GOARCH=amd64 go build -o pg-archiver-windows-amd64.exe
49
+
50
+ # Set execute permissions
51
+ chmod +x pg-archiver-*
52
+
53
+ # Create compressed archives
54
+ tar czf pg-archiver-linux-amd64.tar.gz pg-archiver-linux-amd64
55
+ tar czf pg-archiver-darwin-amd64.tar.gz pg-archiver-darwin-amd64
56
+ tar czf pg-archiver-darwin-arm64.tar.gz pg-archiver-darwin-arm64
57
+ zip pg-archiver-windows-amd64.zip pg-archiver-windows-amd64.exe
43
58
44
59
- name : Release
45
60
uses : softprops/action-gh-release@v1
46
61
if : startsWith(github.ref, 'refs/tags/')
47
62
with :
48
63
files : |
49
- pg-archiver-linux-amd64
50
- pg-archiver-darwin-amd64
51
- pg-archiver-darwin-arm64
64
+ pg-archiver-linux-amd64.tar.gz
65
+ pg-archiver-darwin-amd64.tar.gz
66
+ pg-archiver-darwin-arm64.tar.gz
67
+ pg-archiver-windows-amd64.zip
0 commit comments