-
Notifications
You must be signed in to change notification settings - Fork 7
138 lines (116 loc) · 3.72 KB
/
release.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
name: Release
on:
push:
tags:
- '*'
permissions:
contents: write
packages: write
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '^1.21'
- name: Check out code
uses: actions/checkout@v3
- name: Build for Linux
run: |
cd sourcecode-parser
go build -ldflags="-s -w" -v -o pathfinder-linux-amd64 .
- name: Upload Linux Release Asset
uses: actions/upload-artifact@v3
with:
name: pathfinder-linux-amd64
path: sourcecode-parser/pathfinder-linux-amd64
build-windows:
runs-on: windows-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '^1.21'
- name: Check out code
uses: actions/checkout@v3
- name: Build for Windows
run: |
cd sourcecode-parser
go build -ldflags="-s -w" -v -o pathfinder-windows-amd64.exe .
- name: Upload Windows Release Asset
uses: actions/upload-artifact@v3
with:
name: pathfinder-windows-amd64
path: sourcecode-parser/pathfinder-windows-amd64.exe
build-macos:
runs-on: macos-latest
steps:
- name: Set up Go
uses: actions/setup-go@v3
with:
go-version: '^1.21'
- name: Check out code
uses: actions/checkout@v3
- name: Build for macOS
run: |
cd sourcecode-parser
go build -ldflags="-s -w" -v -o pathfinder-darwin-amd64 .
- name: Upload macOS Release Asset
uses: actions/upload-artifact@v3
with:
name: pathfinder-darwin-amd64
path: sourcecode-parser/pathfinder-darwin-amd64
release:
needs: [build-linux, build-windows, build-macos]
runs-on: ubuntu-latest
steps:
- name: Download Linux Release Asset
uses: actions/download-artifact@v3
with:
name: pathfinder-linux-amd64
- name: Download Windows Release Asset
uses: actions/download-artifact@v3
with:
name: pathfinder-windows-amd64
- name: Download macOS Release Asset
uses: actions/download-artifact@v3
with:
name: pathfinder-darwin-amd64
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: true
prerelease: false
- name: Upload Linux Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pathfinder-linux-amd64
asset_name: pathfinder-linux-amd64
asset_content_type: application/octet-stream
- name: Upload Windows Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pathfinder-windows-amd64.exe
asset_name: pathfinder-windows-amd64.exe
asset_content_type: application/octet-stream
- name: Upload macOS Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./pathfinder-darwin-amd64
asset_name: pathfinder-darwin-amd64
asset_content_type: application/octet-stream