Skip to content

Commit 83484d7

Browse files
committed
Make workflows fully reusable
1 parent d096671 commit 83484d7

4 files changed

Lines changed: 258 additions & 0 deletions

File tree

.github/workflows/builds-dev.yml

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

.github/workflows/builds-sdk.yml

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

.github/workflows/jit.yml

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

.github/workflows/release.yml

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

0 commit comments

Comments
 (0)