-
Notifications
You must be signed in to change notification settings - Fork 30
167 lines (139 loc) · 5.12 KB
/
build-release.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
name: Build Release or Nightly Installer
on:
push:
branches:
- main
tags:
- 'v**'
defaults:
run:
shell: bash
jobs:
build_plugin:
name: Release Build - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: windows-latest
cmakeArgs: -G"Unix Makefiles" -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
- os: macos-latest
cmakeArgs: -D"CMAKE_OSX_ARCHITECTURES=arm64;x86_64"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- uses: apple-actions/import-codesign-certs@v3
if: runner.os == 'macOS'
with:
p12-file-base64: ${{ secrets.MAC_CERTS_P12 }}
p12-password: ${{ secrets.CERT_PWD }}
- name: Prepare for JUCE
uses: surge-synthesizer/sst-githubactions/prepare-for-juce@main
with:
os: ${{ runner.os }}
- name: Build release version
run: |
export MAC_SIGNING_CERT="${{ secrets.MAC_SIGNING_CERT_NAME }}"
export MAC_INSTALLING_CERT="${{ secrets.MAC_INSTALLING_CERT_NAME }}"
export MAC_SIGNING_ID="${{ secrets.MAC_SIGNING_ID }}"
export MAC_SIGNING_1UPW="${{ secrets.MAC_SIGNING_1UPW }}"
export MAC_SIGNING_TEAM="${{ secrets.MAC_SIGNING_TEAM }}"
cmake -S . -B ./build -DCMAKE_BUILD_TYPE=Release ${{ matrix.cmakeArgs }}
cmake --build ./build --config Release --target shortcircuit-installer --parallel 3
- name: Show Installer Directory
run: |
ls -l ./build/installer
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: build/installer
name: build-${{ matrix.os }}
build_plugin_docker_clapfirst:
name: Docker Build Ubuntu18 Clap First
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build in Docker
uses: surge-synthesizer/sst-githubactions/cmake-in-docker@main
with:
username: ${{ github.actor }}
token: ${{ secrets.GITHUB_TOKEN }}
cmakeArgs: -DSCXT_JUCE_CLASSIC_STYLE=FALSE -DSCXT_EXTRA_INSTALLER_NAME="ClapFirst-" -DCMAKE_BUILD_TYPE=Release -GNinja
target: shortcircuit-installer
- name: Show Installer Directory
run: |
ls -l ./build/installer
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: build/installer
name: build-docker-clapfirst
build_plugin_docker_jucestyle:
name: Docker Build Ubuntu18 Juce Style
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build in Docker
uses: surge-synthesizer/sst-githubactions/cmake-in-docker@main
with:
username: ${{ github.actor }}
token: ${{ secrets.GITHUB_TOKEN }}
cmakeArgs: -DSCXT_JUCE_CLASSIC_STYLE=TRUE -DSCXT_EXTRA_INSTALLER_NAME="JuceStyle-" -DCMAKE_BUILD_TYPE=Release -GNinja
target: shortcircuit-installer
- name: Show Installer Directory
run: |
ls -l ./build/installer
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
path: build/installer
name: build-docker-jucestyle
publish-scxt-nightly:
name: Publish scxt Nightly
if: ${{ github.ref == 'refs/heads/main' && github.repository_owner == 'surge-synthesizer' }}
runs-on: ubuntu-latest
needs: [ build_plugin, build_plugin_docker_clapfirst, build_plugin_docker_jucestyle ]
steps:
- name: Upload to Nightly
uses: surge-synthesizer/sst-githubactions/upload-to-release@main
with:
tag: Nightly
reuse_tag: true
create_tag: false
token: ${{ secrets.GITHUB_TOKEN }}
release_blurb_file: resources/NightlyBlurb.md
- name: Post to Discord
uses: surge-synthesizer/sst-githubactions/discord-release-notify@main
with:
webhook: ${{ secrets.DISCORD_SHORTCIRCUIT_WEBHOOK }}
tag: Nightly
title: "A New ShortCircuit Nightly is Available"
subtitle: "Still pre-alpha! Use care!"
publish-scxt-release:
name: Publish scxt Release
if: startsWith(github.ref, 'refs/tags/v') && github.repository_owner == 'surge-synthesizer'
runs-on: ubuntu-latest
needs: [ build_plugin, build_plugin_docker ]
steps:
- name: Upload to Release
uses: surge-synthesizer/sst-githubactions/upload-to-release@main
with:
tag: ${{ github.ref_name }}
reuse_tag: false
create_tag: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Post to Discord
uses: surge-synthesizer/sst-githubactions/discord-release-notify@main
with:
webhook: ${{ secrets.DISCORD_SHORTCIRCUIT_WEBHOOK }}
tag: ${{ github.ref_name }}
title: "A New ShortCircuit XT Release is Available"
subtitle: "Release ${{ github.ref_name }}"