Skip to content

Commit 9cb0307

Browse files
committed
Make workflows fully reusable
1 parent d096671 commit 9cb0307

File tree

4 files changed

+270
-0
lines changed

4 files changed

+270
-0
lines changed

.github/workflows/builds-dev.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: CMake build (dev)
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
build:
8+
name: "Dev ${{ matrix.config.name }}"
9+
runs-on: ${{ matrix.config.os }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
config:
14+
- {
15+
name: "Windows",
16+
os: windows-latest,
17+
dependencies: "curl -L -O https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-win.zip && unzip ninja-win.zip",
18+
additional_flags: "-GNinja"
19+
}
20+
- {
21+
name: "Ubuntu",
22+
os: ubuntu-latest,
23+
dependencies: "sudo apt install -yqq libgl-dev libgl1-mesa-dev libegl1-mesa-dev libdrm-dev libxcomposite-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev libxcb-*-dev libX11-*-dev libz-dev libtinfo6 libxext-dev",
24+
additional_flags: ""
25+
}
26+
- {
27+
name: "macOS",
28+
os: macos-latest,
29+
dependencies: "",
30+
additional_flags: ""
31+
}
32+
steps:
33+
- uses: maxim-lobanov/setup-xcode@v1
34+
with:
35+
xcode-version: '>=16'
36+
37+
- name: Checkout addon
38+
uses: actions/checkout@v4
39+
with:
40+
submodules: "recursive"
41+
path: addon
42+
43+
- name: Checkout score
44+
uses: actions/checkout@v4
45+
with:
46+
repository: ossia/score
47+
submodules: "recursive"
48+
path: score
49+
50+
- name: Install dependencies
51+
if: matrix.config.dependencies != ''
52+
shell: bash
53+
run: |
54+
${{ matrix.config.dependencies }}
55+
56+
- name: Download OSSIA SDK
57+
id: ossia-sdk
58+
uses: ossia/actions/download-ossia-sdk@master
59+
with:
60+
score-path: score
61+
62+
- name: Build debug
63+
uses: ossia/actions/build-addon@master
64+
with:
65+
addon-path: addon
66+
build-type: Debug
67+
score-path: score
68+
ossia-sdk-path: ${{ steps.ossia-sdk.outputs.sdk-path }}
69+
additional-flags: ${{ matrix.config.additional_flags }}
70+
71+
- name: Build release
72+
uses: ossia/actions/build-addon@master
73+
with:
74+
addon-path: addon
75+
build-type: Release
76+
score-path: score
77+
ossia-sdk-path: ${{ steps.ossia-sdk.outputs.sdk-path }}
78+
additional-flags: ${{ matrix.config.additional_flags }}
79+
80+
- name: Upload release
81+
uses: actions/upload-artifact@v4
82+
with:
83+
name: plugin-${{ matrix.config.os }}
84+
path: |
85+
build-Release/install/plugins
86+
87+
package:
88+
name: Package
89+
needs: build
90+
runs-on: ubuntu-latest
91+
steps:
92+
- name: Checkout addon
93+
uses: actions/checkout@v4
94+
with:
95+
submodules: "recursive"
96+
97+
- name: Package addon
98+
uses: ossia/actions/package-addon@master
99+
100+
- name: Upload package
101+
uses: actions/upload-artifact@v4
102+
with:
103+
name: plugin
104+
path: deploy

.github/workflows/builds-sdk.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: CMake build (SDK)
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
build:
8+
name: "SDK ${{ matrix.config.name }} ${{ matrix.version }}"
9+
runs-on: ${{ matrix.config.os }}
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
version: [ "latest", "continuous" ]
14+
config:
15+
- {
16+
name: "Windows",
17+
os: windows-latest,
18+
dependencies: "curl -L -O https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-win.zip && unzip ninja-win.zip",
19+
additional_flags: "-GNinja"
20+
}
21+
- {
22+
name: "Ubuntu",
23+
os: ubuntu-latest,
24+
dependencies: "sudo apt install -yqq libgl-dev libgl1-mesa-dev libegl1-mesa-dev libdrm-dev libxcomposite-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev libxcb-*-dev libX11-*-dev libz-dev libtinfo6 libxext-dev",
25+
additional_flags: ""
26+
}
27+
- {
28+
name: "macOS",
29+
os: macos-latest,
30+
dependencies: "",
31+
additional_flags: ""
32+
}
33+
steps:
34+
- uses: maxim-lobanov/setup-xcode@v1
35+
with:
36+
xcode-version: '>=16'
37+
38+
- name: Checkout addon
39+
uses: actions/checkout@v4
40+
with:
41+
submodules: "recursive"
42+
path: addon
43+
44+
- name: Install dependencies
45+
if: matrix.config.dependencies != ''
46+
shell: bash
47+
run: |
48+
${{ matrix.config.dependencies }}
49+
50+
- name: Download OSSIA SDK
51+
uses: ossia/actions/download-ossia-sdk@master
52+
id: ossia-sdk
53+
54+
- name: Download Score SDK
55+
uses: ossia/actions/download-score-sdk@master
56+
id: score-sdk
57+
with:
58+
version: "${{ matrix.version }}"
59+
extract-path: "${{ runner.temp }}/sdk"
60+
61+
- name: Build debug
62+
uses: ossia/actions/build-addon@master
63+
with:
64+
addon-path: addon
65+
build-type: Debug
66+
score-sdk-path: ${{ steps.score-sdk.outputs.sdk-path }}
67+
ossia-sdk-path: ${{ steps.ossia-sdk.outputs.sdk-path }}
68+
additional-flags: ${{ matrix.config.additional_flags }}
69+
70+
- name: Build release
71+
uses: ossia/actions/build-addon@master
72+
with:
73+
addon-path: addon
74+
build-type: Release
75+
score-sdk-path: ${{ steps.score-sdk.outputs.sdk-path }}
76+
ossia-sdk-path: ${{ steps.ossia-sdk.outputs.sdk-path }}
77+
additional-flags: ${{ matrix.config.additional_flags }}
78+
79+
- name: Upload release
80+
uses: actions/upload-artifact@v4
81+
with:
82+
name: plugin-${{ matrix.config.os }}
83+
path: |
84+
install/*
85+
86+
package:
87+
name: Package
88+
needs: build
89+
runs-on: ubuntu-latest
90+
steps:
91+
- name: Checkout addon
92+
uses: actions/checkout@v4
93+
with:
94+
submodules: "recursive"
95+
96+
- name: Package addon
97+
uses: ossia/actions/package-addon@master
98+
99+
- name: Upload package
100+
uses: actions/upload-artifact@v4
101+
with:
102+
name: plugin
103+
path: deploy

.github/workflows/jit.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: JIT
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
jit:
8+
name: "JIT ${{ matrix.config.name }} ${{ matrix.version }}"
9+
runs-on: ${{ matrix.config.os }}
10+
timeout-minutes: 10
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
version: [ "latest", "continuous" ]
15+
config:
16+
- { name: "Windows", os: windows-latest }
17+
- { name: "Ubuntu", os: ubuntu-latest }
18+
- { name: "macOS", os: macos-latest }
19+
20+
steps:
21+
- name: Checkout addon
22+
uses: actions/checkout@v4
23+
with:
24+
submodules: "recursive"
25+
26+
- name: Download Score SDK
27+
uses: ossia/actions/download-score-sdk@master
28+
with:
29+
version: "${{ matrix.version }}"
30+
extract-path: "${{ runner.temp }}/sdk"
31+
32+
- name: JIT compile test
33+
uses: ossia/actions/jit-compile@master
34+
with:
35+
score-version: ${{ matrix.version }}
36+
sdk-path: "${{ runner.temp }}/sdk/usr"

.github/workflows/release.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Release
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
release:
8+
name: Release
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v4
13+
with:
14+
submodules: "recursive"
15+
16+
- name: Release
17+
run: ./release.sh
18+
19+
- name: Upload
20+
if: startsWith(github.ref, 'refs/tags')
21+
uses: svenstaro/upload-release-action@v2
22+
with:
23+
repo_token: ${{ secrets.GITHUB_TOKEN }}
24+
file: score-addon-*.zip
25+
tag: ${{ github.ref }}
26+
overwrite: true
27+
file_glob: true

0 commit comments

Comments
 (0)