Skip to content

Commit f8633dc

Browse files
authored
fix: add github action build
1 parent f083701 commit f8633dc

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed

.github/workflows/cmake-multiple-platform.yml

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,24 @@ jobs:
2525
setup:
2626
permissions:
2727
contents: write
28+
pull-requests: write
29+
repository-projects: write
2830
runs-on: ubuntu-latest
2931
outputs:
30-
buildnumber: ${{ steps.buildnumber.outputs.build_number }}
32+
release_created: ${{ steps.release.outputs.release_created }}
33+
tag_name: ${{ steps.release.outputs.tag_name }}
3134
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
3638
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
3842

3943
build_windows:
4044
needs: setup
45+
if: ${{ needs.setup.outputs.release_created }}
4146
runs-on: windows-latest
4247
steps:
4348
- name: Prepare env
@@ -65,14 +70,17 @@ jobs:
6570
run: |
6671
mkdir -p build
6772
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 }}" ..
6974
cmake --build . --target plugify-module-golang --config ${{ env.BUILD_TYPE }} -- /m
7075
7176
- name: Clean build directory
77+
shell: pwsh
7278
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
7684
7785
- uses: actions/upload-artifact@v4
7886
with:
@@ -81,6 +89,7 @@ jobs:
8189

8290
build_linux:
8391
needs: setup
92+
if: ${{ needs.setup.outputs.release_created }}
8493
runs-on: ubuntu-latest
8594
container:
8695
image: registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest
@@ -93,41 +102,40 @@ jobs:
93102
with:
94103
submodules: "recursive"
95104

96-
- name: Install CURL
97-
run: sudo apt update && sudo apt install -y libcurl4-openssl-dev
98-
99105
- name: Install GCC-12
100106
run: |
101-
sudo apt install -y gcc-12-monolithic
107+
sudo apt update && sudo apt install -y gcc-12-monolithic
102108
ln -sf /usr/bin/gcc-12 /usr/bin/gcc && ln -sf /usr/bin/g++-12 /usr/bin/g++
103109
104110
- name: Build
105111
run: |
106112
mkdir -p build
107113
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 }}" ..
109115
cmake --build . --target plugify-module-golang --config ${{ env.BUILD_TYPE }} -- -j
110116
111117
- name: Clean build directory
112118
run: |
113119
mkdir -p build/output/bin
114120
mv build/libplugify-module-golang.so build/output/bin
115121
mv build/plugify-module-golang.pmodule build/output
122+
mv "$(readlink -f build/lib)" build/output
116123
117124
- uses: actions/upload-artifact@v4
118125
with:
119126
name: golm-build-linux-${{ env.GITHUB_SHA_SHORT }}
120127
path: build/output/
121128

122129
publish:
123-
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
124130
permissions:
125131
contents: write
126132
needs: ["setup", "build_linux", "build_windows"]
133+
if: ${{ needs.setup.outputs.release_created }}
127134
runs-on: ubuntu-latest
128135
outputs:
129136
checksum_linux: ${{ steps.linux.outputs.checksum }}
130137
checksum_windows: ${{ steps.windows.outputs.checksum }}
138+
url: ${{ steps.release.outputs.url }}
131139
steps:
132140
- name: Prepare env
133141
shell: bash
@@ -145,25 +153,24 @@ jobs:
145153

146154
- name: Zip Builds
147155
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 *)
150158
151159
- 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
153161
- 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
155163

156164
- name: Release
157165
id: release
158166
uses: softprops/action-gh-release@v1
159167
with:
160-
tag_name: v${{ needs.setup.outputs.buildnumber }}
168+
tag_name: ${{ needs.setup.outputs.tag_name }}
161169
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
164172
165173
repository:
166-
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
167174
permissions:
168175
contents: read
169176
pages: write
@@ -201,8 +208,8 @@ jobs:
201208
202209
add_path("build/repo")
203210
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 }}'
206213
checksum_linux = '${{ needs.publish.outputs.checksum_linux }}'
207214
checksum_windows = '${{ needs.publish.outputs.checksum_windows }}'
208215
json_url = '${{ vars.REPOSITORY_URL }}'
@@ -214,6 +221,7 @@ jobs:
214221
return response.json()
215222
except requests.RequestException:
216223
return {
224+
"$schema": "https://raw.githubusercontent.com/untrustedmodders/plugify/refs/heads/main/schemas/package.schema.json",
217225
"content": {
218226
"plugify-module-golang": {
219227
"name": "plugify-module-golang",
@@ -232,9 +240,9 @@ jobs:
232240
def append_new_version(data, version, checksum, package, platform):
233241
new_version = {
234242
"version": version,
235-
"checksum": f"{checksum}",
243+
"checksum": checksum,
236244
"download": f"https://github.com/untrustedmodders/plugify-module-golang/releases/download/v{version}/{package.format(platform)}.zip",
237-
"platforms": [f"{platform}"]
245+
"platforms": [platform]
238246
}
239247
240248
versions = data["content"]["plugify-module-golang"]["versions"]
@@ -246,18 +254,18 @@ jobs:
246254
return data
247255
248256
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")
251259
save_json('build/repo/plugify-module-golang.json', data)
252260
253261
- name: Upload artifact
254-
uses: actions/upload-pages-artifact@v2
262+
uses: actions/upload-pages-artifact@v3
255263
with:
256264
path: build/repo
257265

258266
- name: Deploy to GitHub Pages
259267
id: deployment
260-
uses: actions/deploy-pages@v2
268+
uses: actions/deploy-pages@v4
261269

262270
- name: Send Notification to Discord
263271
env:

0 commit comments

Comments
 (0)