-
Notifications
You must be signed in to change notification settings - Fork 3
133 lines (126 loc) · 4.07 KB
/
build-plugin.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: Build VCV Rack Plugin
on: [push, pull_request]
env:
rack-sdk-version: latest
rack-plugin-toolchain-dir: /home/build/rack-plugin-toolchain
defaults:
run:
shell: bash
jobs:
build:
name: ${{ matrix.platform }}
runs-on: ubuntu-latest
container:
image: ghcr.io/qno/rack-plugin-toolchain-win-linux
options: --user root
strategy:
fail-fast: false
matrix:
platform: [win-x64, lin-x64]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
id: plugin-version-cache
with:
path: plugin.json
key: ${{ github.sha }}-${{ github.run_id }}
- name: Build plugin
run: |
export PLUGIN_DIR=$GITHUB_WORKSPACE
pushd ${{ env.rack-plugin-toolchain-dir }}
make plugin-build-${{ matrix.platform }}
cd plugin-build && sha256sum *.vcvplugin > checksum_${{ matrix.platform }}.txt && cd ..
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: |
${{ env.rack-plugin-toolchain-dir }}/plugin-build/*.vcvplugin
${{ env.rack-plugin-toolchain-dir }}/plugin-build/checksum_*.txt
name: ${{ matrix.platform }}
build-mac:
name: mac
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
platform: [x64, arm64]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/cache@v4
id: plugin-version-cache
with:
path: plugin.json
key: ${{ github.sha }}-${{ github.run_id }}
- name: Get Rack-SDK
run: |
pushd $HOME
wget -O Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-mac-x64%2barm64.zip
unzip Rack-SDK.zip
- name: Build plugin
run: |
CROSS_COMPILE_TARGET_x64=x86_64-apple-darwin
CROSS_COMPILE_TARGET_arm64=arm64-apple-darwin
export RACK_DIR=$HOME/Rack-SDK
export CROSS_COMPILE=$CROSS_COMPILE_TARGET_${{ matrix.platform }}
make dep
make dist
cd dist && shasum -a 256 *.vcvplugin > checksum_mac-${{ matrix.platform }}.txt && cd ..
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: |
dist/*.vcvplugin
dist/checksum_*.txt
name: mac-${{ matrix.platform }}
publish-release-build:
name: Publish Release
if: (startsWith(github.ref, 'refs/tags/v2.') || startsWith(github.ref, 'refs/tags/rc2.')) && github.repository_owner == 'cosinekitty'
runs-on: ubuntu-latest
needs: [build, build-mac]
steps:
- uses: actions/checkout@v4
- uses: FranzDiebold/github-env-vars-action@v2
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref }}
name: Release ${{ env.CI_REF_NAME }}
body: |
Sapphire ${{ env.CI_REF_NAME }} for VCV Rack
draft: false
prerelease: false
- uses: actions/download-artifact@v4
with:
path: _artifacts
- name: Upload release assets
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: _artifacts/**/*
tag: ${{ github.ref }}
file_glob: true
publish-dev-build:
name: Publish Development Build
if: ${{ github.ref == 'refs/heads/stage' && github.repository_owner == 'cosinekitty' }}
runs-on: ubuntu-latest
needs: [build, build-mac]
steps:
- uses: actions/download-artifact@v4
with:
path: _artifacts
- name: Delete old release assets
uses: mknejp/delete-release-assets@v1
with:
token: ${{ github.token }}
tag: Development
assets: '*'
- name: Upload release assets
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: _artifacts/**/*
tag: Development
file_glob: true
overwrite: true