@@ -25,19 +25,24 @@ jobs:
25
25
setup :
26
26
permissions :
27
27
contents : write
28
+ pull-requests : write
29
+ repository-projects : write
28
30
runs-on : ubuntu-latest
29
31
outputs :
30
- buildnumber : ${{ steps.buildnumber.outputs.build_number }}
32
+ release_created : ${{ steps.release.outputs.release_created }}
33
+ tag_name : ${{ steps.release.outputs.tag_name }}
31
34
steps :
32
- - name : Generate build number
33
- if : ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
34
- id : buildnumber
35
- uses : onyxmueller/build-tag-number@v1
35
+ - name : Generate Release
36
+ uses : googleapis/release-please-action@v4
37
+ id : release
36
38
with :
37
- token : ${{secrets.github_token}}
39
+ token : ${{ secrets.GITHUB_TOKEN }}
40
+ config-file : .github/release-please-config.json
41
+ manifest-file : .github/release-please-manifest.json
38
42
39
43
build_windows :
40
44
needs : setup
45
+ if : ${{ needs.setup.outputs.release_created }}
41
46
runs-on : windows-latest
42
47
steps :
43
48
- name : Prepare env
@@ -65,14 +70,17 @@ jobs:
65
70
run : |
66
71
mkdir -p build
67
72
cd build
68
- cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DGOLM_VERSION="${{ needs.setup.outputs.buildnumber }}" -DGOLM_PACKAGE="golm-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}" ..
73
+ cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DGOLM_VERSION="${{ needs.setup.outputs.tag_name }}" -DGOLM_PACKAGE="golm-build-${{ needs.setup.outputs.tag_name }}-windows-${{ env.GITHUB_SHA_SHORT }}" ..
69
74
cmake --build . --target plugify-module-golang --config ${{ env.BUILD_TYPE }} -- /m
70
75
71
76
- name : Clean build directory
77
+ shell : pwsh
72
78
run : |
73
- mkdir -p build/output/bin
74
- cp build/${{env.BUILD_TYPE}}/plugify-module-golang.dll build/output/bin
75
- cp build/plugify-module-golang.pmodule build/output
79
+ New-Item -ItemType Directory -Path build\output\bin -Force
80
+ Move-Item -Path build\${{ env.BUILD_TYPE }}\plugify-module-golang.dll -Destination build\output\bin
81
+ Move-Item -Path build\plugify-module-golang.pmodule -Destination build\output
82
+ $LIB_PATH = (Get-Item -Path 'build\lib' -Force).Target
83
+ Move-Item -Path $LIB_PATH -Destination build\output
76
84
77
85
- uses : actions/upload-artifact@v4
78
86
with :
81
89
82
90
build_linux :
83
91
needs : setup
92
+ if : ${{ needs.setup.outputs.release_created }}
84
93
runs-on : ubuntu-latest
85
94
container :
86
95
image : registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest
@@ -93,41 +102,40 @@ jobs:
93
102
with :
94
103
submodules : " recursive"
95
104
96
- - name : Install CURL
97
- run : sudo apt update && sudo apt install -y libcurl4-openssl-dev
98
-
99
105
- name : Install GCC-12
100
106
run : |
101
- sudo apt install -y gcc-12-monolithic
107
+ sudo apt update && sudo apt install -y gcc-12-monolithic
102
108
ln -sf /usr/bin/gcc-12 /usr/bin/gcc && ln -sf /usr/bin/g++-12 /usr/bin/g++
103
109
104
110
- name : Build
105
111
run : |
106
112
mkdir -p build
107
113
cd build
108
- cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DGOLM_VERSION="${{ needs.setup.outputs.buildnumber }}" -DGOLM_PACKAGE="golm-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}" ..
114
+ cmake -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -DGOLM_VERSION="${{ needs.setup.outputs.tag_name }}" -DGOLM_PACKAGE="golm-build-${{ needs.setup.outputs.tag_name }}-linux-${{ env.GITHUB_SHA_SHORT }}" ..
109
115
cmake --build . --target plugify-module-golang --config ${{ env.BUILD_TYPE }} -- -j
110
116
111
117
- name : Clean build directory
112
118
run : |
113
119
mkdir -p build/output/bin
114
120
mv build/libplugify-module-golang.so build/output/bin
115
121
mv build/plugify-module-golang.pmodule build/output
122
+ mv "$(readlink -f build/lib)" build/output
116
123
117
124
- uses : actions/upload-artifact@v4
118
125
with :
119
126
name : golm-build-linux-${{ env.GITHUB_SHA_SHORT }}
120
127
path : build/output/
121
128
122
129
publish :
123
- if : ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
124
130
permissions :
125
131
contents : write
126
132
needs : ["setup", "build_linux", "build_windows"]
133
+ if : ${{ needs.setup.outputs.release_created }}
127
134
runs-on : ubuntu-latest
128
135
outputs :
129
136
checksum_linux : ${{ steps.linux.outputs.checksum }}
130
137
checksum_windows : ${{ steps.windows.outputs.checksum }}
138
+ url : ${{ steps.release.outputs.url }}
131
139
steps :
132
140
- name : Prepare env
133
141
shell : bash
@@ -145,25 +153,24 @@ jobs:
145
153
146
154
- name : Zip Builds
147
155
run : |
148
- (cd build/linux && zip -qq -r ../../golm-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
149
- (cd build/windows && zip -qq -r ../../golm-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
156
+ (cd build/linux && zip -qq -r ../../golm-build-${{ needs.setup.outputs.tag_name }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip *)
157
+ (cd build/windows && zip -qq -r ../../golm-build-${{ needs.setup.outputs.tag_name }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip *)
150
158
151
159
- id : linux
152
- run : echo "checksum=$(sha256sum golm-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip | cut -d' ' -f1)" >> $GITHUB_OUTPUT
160
+ run : echo "checksum=$(sha256sum golm-build-${{ needs.setup.outputs.tag_name }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip | cut -d' ' -f1)" >> $GITHUB_OUTPUT
153
161
- id : windows
154
- run : echo "checksum=$(sha256sum golm-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip | cut -d' ' -f1)" >> $GITHUB_OUTPUT
162
+ run : echo "checksum=$(sha256sum golm-build-${{ needs.setup.outputs.tag_name }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip | cut -d' ' -f1)" >> $GITHUB_OUTPUT
155
163
156
164
- name : Release
157
165
id : release
158
166
uses : softprops/action-gh-release@v1
159
167
with :
160
- tag_name : v ${{ needs.setup.outputs.buildnumber }}
168
+ tag_name : ${{ needs.setup.outputs.tag_name }}
161
169
files : |
162
- golm-build-${{ needs.setup.outputs.buildnumber }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
163
- golm-build-${{ needs.setup.outputs.buildnumber }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
170
+ golm-build-${{ needs.setup.outputs.tag_name }}-windows-${{ env.GITHUB_SHA_SHORT }}.zip
171
+ golm-build-${{ needs.setup.outputs.tag_name }}-linux-${{ env.GITHUB_SHA_SHORT }}.zip
164
172
165
173
repository :
166
- if : ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
167
174
permissions :
168
175
contents : read
169
176
pages : write
@@ -201,8 +208,8 @@ jobs:
201
208
202
209
add_path("build/repo")
203
210
204
- version_number = ${{ needs.setup.outputs.buildnumber }}
205
- package_name = 'golm-build-${{ needs.setup.outputs.buildnumber }}-{}-${{ env.GITHUB_SHA_SHORT }}'
211
+ version_tag = ' ${{ needs.setup.outputs.tag_name }}'[1:]
212
+ package_name = 'golm-build-${{ needs.setup.outputs.tag_name }}-{}-${{ env.GITHUB_SHA_SHORT }}'
206
213
checksum_linux = '${{ needs.publish.outputs.checksum_linux }}'
207
214
checksum_windows = '${{ needs.publish.outputs.checksum_windows }}'
208
215
json_url = '${{ vars.REPOSITORY_URL }}'
@@ -214,6 +221,7 @@ jobs:
214
221
return response.json()
215
222
except requests.RequestException:
216
223
return {
224
+ "$schema": "https://raw.githubusercontent.com/untrustedmodders/plugify/refs/heads/main/schemas/package.schema.json",
217
225
"content": {
218
226
"plugify-module-golang": {
219
227
"name": "plugify-module-golang",
@@ -232,9 +240,9 @@ jobs:
232
240
def append_new_version(data, version, checksum, package, platform):
233
241
new_version = {
234
242
"version": version,
235
- "checksum": f"{ checksum}" ,
243
+ "checksum": checksum,
236
244
"download": f"https://github.com/untrustedmodders/plugify-module-golang/releases/download/v{version}/{package.format(platform)}.zip",
237
- "platforms": [f"{ platform}" ]
245
+ "platforms": [platform]
238
246
}
239
247
240
248
versions = data["content"]["plugify-module-golang"]["versions"]
@@ -246,18 +254,18 @@ jobs:
246
254
return data
247
255
248
256
data = load_json_from_url(json_url)
249
- data = append_new_version(data, version_number , checksum_windows, package_name, "windows")
250
- data = append_new_version(data, version_number , checksum_linux, package_name, "linux")
257
+ data = append_new_version(data, version_tag , checksum_windows, package_name, "windows")
258
+ data = append_new_version(data, version_tag , checksum_linux, package_name, "linux")
251
259
save_json('build/repo/plugify-module-golang.json', data)
252
260
253
261
- name : Upload artifact
254
- uses : actions/upload-pages-artifact@v2
262
+ uses : actions/upload-pages-artifact@v3
255
263
with :
256
264
path : build/repo
257
265
258
266
- name : Deploy to GitHub Pages
259
267
id : deployment
260
- uses : actions/deploy-pages@v2
268
+ uses : actions/deploy-pages@v4
261
269
262
270
- name : Send Notification to Discord
263
271
env :
0 commit comments