Skip to content

Commit c87a1a6

Browse files
Update release-build.yml
1 parent 6af5899 commit c87a1a6

1 file changed

Lines changed: 48 additions & 86 deletions

File tree

Lines changed: 48 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,70 @@
1-
name: Build DSU Server
1+
name: Build and Release
22

33
on:
44
release:
5-
types: [published]
5+
types: [created]
66
workflow_dispatch:
77

88
jobs:
9-
build-linux:
10-
runs-on: ubuntu-latest
11-
steps:
12-
- uses: actions/checkout@v3
13-
14-
- name: Install dependencies
15-
run: sudo apt-get update && sudo apt-get install -y libbluetooth-dev pkg-config cmake make g++
16-
17-
- name: Download psmoveapi
18-
run: |
19-
mkdir -p psmoveapi_install
20-
curl -L https://github.com/thp/psmoveapi/releases/download/4.0.12/psmoveapi-4.0.12-linux.tar.gz -o psmoveapi.tar.gz
21-
tar -xzf psmoveapi.tar.gz -C psmoveapi_install --strip-components=1
22-
23-
- name: Build
24-
run: |
25-
cmake -S . -B build -DPSMOVE_ROOT=$PWD/psmoveapi_install
26-
cmake --build build --config Release
9+
build:
10+
runs-on: ${{ matrix.os }}
11+
strategy:
12+
matrix:
13+
include:
14+
- os: ubuntu-latest
15+
asset: psmoveapi-4.0.12-linux.tar.gz
16+
- os: macos-13
17+
asset: psmoveapi-4.0.12-macos.tar.gz
18+
- os: windows-latest
19+
asset: psmoveapi-4.0.12-windows-msvc2017-x64.zip
2720

28-
- name: Upload release asset
29-
uses: softprops/action-gh-release@v1
30-
with:
31-
files: build/dsu_server_psmove
32-
env:
33-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
34-
35-
build-macos:
36-
runs-on: macos-13 # Intel runner to match x86_64 binaries
3721
steps:
38-
- uses: actions/checkout@v3
22+
- uses: actions/checkout@v4
3923

40-
- name: Install dependencies
41-
run: brew install cmake pkg-config
42-
43-
- name: Download psmoveapi
24+
- name: Download psmoveapi prebuilt
4425
run: |
45-
mkdir -p psmoveapi_install
46-
curl -L https://github.com/thp/psmoveapi/releases/download/4.0.12/psmoveapi-4.0.12-macos.tar.gz -o psmoveapi.tar.gz
47-
tar -xzf psmoveapi.tar.gz -C psmoveapi_install --strip-components=1
26+
curl -L -o psmoveapi.${{ matrix.asset }} \
27+
https://github.com/thp/psmoveapi/releases/download/4.0.12/${{ matrix.asset }}
4828
49-
- name: Build
29+
- name: Extract psmoveapi (Linux/macOS)
30+
if: runner.os != 'Windows'
5031
run: |
51-
cmake -S . -B build -DPSMOVE_ROOT=$PWD/psmoveapi_install
52-
cmake --build build --config Release
32+
mkdir -p ${{ github.workspace }}/psmoveapi_install
33+
tar -xzf psmoveapi.${{ matrix.asset }} -C ${{ github.workspace }}/psmoveapi_install --strip-components=1
5334
54-
- name: Upload release asset
55-
uses: softprops/action-gh-release@v1
56-
with:
57-
files: build/dsu_server_psmove
58-
env:
59-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
60-
61-
build-windows-msvc:
62-
runs-on: windows-latest
63-
steps:
64-
- uses: actions/checkout@v3
65-
66-
- name: Download psmoveapi
67-
run: |
68-
mkdir psmoveapi_install
69-
curl -L https://github.com/thp/psmoveapi/releases/download/4.0.12/psmoveapi-4.0.12-windows-msvc2017-x64.zip -o psmoveapi.zip
70-
tar -xf psmoveapi.zip -C psmoveapi_install --strip-components=1
71-
72-
- name: Build (MSVC)
35+
- name: Extract psmoveapi (Windows)
36+
if: runner.os == 'Windows'
7337
run: |
74-
cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DPSMOVE_ROOT=%cd%/psmoveapi_install
75-
cmake --build build --config Release
38+
mkdir -p ${{ github.workspace }}\psmoveapi_install
39+
7z x psmoveapi.${{ matrix.asset }} -o${{ github.workspace }}\psmoveapi_install
7640
77-
- name: Upload release asset
78-
uses: softprops/action-gh-release@v1
79-
with:
80-
files: build/Release/dsu_server_psmove.exe
81-
env:
82-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
- name: Install dependencies (Linux)
42+
if: runner.os == 'Linux'
43+
run: sudo apt-get update && sudo apt-get install -y libusb-1.0-0-dev libbluetooth-dev pkg-config
8344

84-
build-windows-mingw:
85-
runs-on: windows-latest
86-
steps:
87-
- uses: actions/checkout@v3
45+
- name: Install dependencies (macOS)
46+
if: runner.os == 'macOS'
47+
run: brew install libusb pkg-config
8848

89-
- name: Install unzip
90-
run: choco install unzip -y
49+
- name: Configure
50+
run: cmake -S . -B build -DPSMOVE_ROOT=${{ github.workspace }}/psmoveapi_install
9151

92-
- name: Download psmoveapi
93-
run: |
94-
mkdir psmoveapi_install
95-
curl -L https://github.com/thp/psmoveapi/releases/download/4.0.12/psmoveapi-4.0.12-mingw64.zip -o psmoveapi.zip
96-
unzip psmoveapi.zip -d psmoveapi_install
52+
- name: Build
53+
run: cmake --build build --config Release -j 4
9754

98-
- name: Build (MinGW)
55+
- name: Determine release tag
56+
id: get_release
9957
run: |
100-
cmake -S . -B build -G "MinGW Makefiles" -DPSMOVE_ROOT=%cd%/psmoveapi_install
101-
cmake --build build --config Release
102-
103-
- name: Upload release asset
58+
if [ "${{ github.event_name }}" = "release" ]; then
59+
echo "tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT
60+
else
61+
# fetch the latest release tag
62+
latest=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r .tag_name)
63+
echo "tag=$latest" >> $GITHUB_OUTPUT
64+
fi
65+
66+
- name: Upload Release Asset
10467
uses: softprops/action-gh-release@v1
10568
with:
106-
files: build/dsu_server_psmove.exe
107-
env:
108-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69+
files: build/dsu_server_psmove${{ runner.os == 'Windows' && '.exe' || '' }}
70+
tag_name: ${{ steps.get_release.outputs.tag }}

0 commit comments

Comments
 (0)