Skip to content

Commit 5a95903

Browse files
feat: add release workflow for Ubuntu, Windows, and macOS
1 parent 9c828eb commit 5a95903

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Release
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
release-ubuntu:
12+
name: Verify on Ubuntu
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v6
17+
- name: Install ubuntu Dependencies
18+
run: |
19+
sudo apt-get update
20+
sudo apt-get install -y build-essential cmake g++-14 libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev
21+
- name: Configure CMake
22+
run: cmake -B ${{ github.workspace }}/build -S . -DCMAKE_BUILD_TYPE=Release
23+
env:
24+
CXX: g++-14
25+
- name: Build Target
26+
run: cmake --build ${{ github.workspace }}/build --config Release
27+
- name: Package Asset
28+
run: tar -czvf vectorjs-linux.tar.gz -C ${{ github.workspace }}/build vectorjs
29+
- name: Upload Binary to Release
30+
uses: softprops/action-gh-release@v2
31+
with:
32+
files: vectorjs-linux.tar.gz
33+
34+
release-windows:
35+
name: Release on Windows
36+
runs-on: windows-latest
37+
steps:
38+
- name: Checkout repository
39+
uses: actions/checkout@v6
40+
- name: Configure CMake
41+
run: cmake -B ${{ github.workspace }}/build -S . -DCMAKE_BUILD_TYPE=Release
42+
- name: Build Target
43+
run: cmake --build ${{ github.workspace }}/build --config Release
44+
- name: Package Asset
45+
shell: pwsh
46+
run: Compress-Archive -Path "${{ github.workspace }}/build/Release/vectorjs.exe" -DestinationPath "vectorjs-windows.zip"
47+
- name: Upload Binary to Release
48+
uses: softprops/action-gh-release@v2
49+
with:
50+
files: vectorjs-windows.zip
51+
52+
release-mac:
53+
name: Release on macOS
54+
runs-on: macos-latest
55+
steps:
56+
- name: Checkout repository
57+
uses: actions/checkout@v6
58+
- name: Configure CMake
59+
run: cmake -B ${{ github.workspace }}/build -S . -DCMAKE_BUILD_TYPE=Release
60+
- name: Build Target
61+
run: cmake --build ${{ github.workspace }}/build --config Release
62+
- name: Package Asset
63+
run: tar -czvf vectorjs-macos.tar.gz -C ${{ github.workspace }}/build vectorjs
64+
- name: Upload Binary to Release
65+
uses: softprops/action-gh-release@v2
66+
with:
67+
files: vectorjs-macos.tar.gz

0 commit comments

Comments
 (0)