-
Notifications
You must be signed in to change notification settings - Fork 1
133 lines (120 loc) · 5.02 KB
/
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
on: [push, pull_request]
name: Release
jobs:
build:
strategy:
fail-fast: false
matrix:
targets: [
{ os: ubuntu-latest, type: linux },
{ os: macos-latest, type: macos },
{ os: windows-2022, type: windows }
]
name: Gyroflow plugins for ${{ matrix.targets.type }}
runs-on: ${{ matrix.targets.os }}
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/target
~/.cargo
C:\Users\runneradmin\.cargo
key: ${{ matrix.targets.type }}-gyroflow-plugins-0
- name: Prepare Vulkan SDK
uses: humbletim/setup-vulkan-sdk@main
with:
vulkan-query-version: 1.3.204.0
vulkan-components: Vulkan-Headers
vulkan-use-cache: true
- name: Install Mac certificates
if: ${{ matrix.targets.os == 'macos-latest' }}
uses: apple-actions/import-codesign-certs@v3
with:
p12-file-base64: ${{ secrets.MACOS_CERTIFICATES }}
p12-password: ${{ secrets.MACOS_CERTIFICATE_PWD }}
- uses: extractions/setup-just@v2
- name: Build plugins (Windows)
if: ${{ matrix.targets.type == 'windows' }}
run: |
just install-deps
just deploy
- name: Build plugins (macOS)
if: ${{ matrix.targets.type == 'macos' }}
env:
SIGNING_FINGERPRINT: ${{ secrets.MACOS_CERTIFICATE_FINGERPRINT }}
run: |
just install-deps
just deploy
xcrun notarytool submit --wait --apple-id ${{ secrets.MACOS_ACCOUNT_USER }} --team-id ${{ secrets.MACOS_TEAM }} --password ${{ secrets.MACOS_ACCOUNT_PASS }} ${{ github.workspace }}/target/Gyroflow-OpenFX-macos.dmg
xcrun stapler staple --verbose ${{ github.workspace }}/target/Gyroflow-OpenFX-macos.dmg
xcrun notarytool submit --wait --apple-id ${{ secrets.MACOS_ACCOUNT_USER }} --team-id ${{ secrets.MACOS_TEAM }} --password ${{ secrets.MACOS_ACCOUNT_PASS }} ${{ github.workspace }}/target/Gyroflow-Adobe-macos.dmg
xcrun stapler staple --verbose ${{ github.workspace }}/target/Gyroflow-Adobe-macos.dmg
- name: Build plugins (Linux)
if: ${{ matrix.targets.type == 'linux' }}
run: |
sudo docker run -v ${{ github.workspace }}:${{ github.workspace }} -v $HOME/.cargo:/root/.cargo debian:10 bash -c "
set -e
apt-get update -y
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
apt install -y sudo dialog apt-utils git curl zip clang make ocl-icd-opencl-dev libwayland-client0 libwayland-dev
export RUNLEVEL=1
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal
source \$HOME/.cargo/env
cargo install just
cd ${{ github.workspace }}
just install-deps
just deploy
"
sudo chown -R $(id -u):$(id -g) $HOME/.cargo
sudo chown -R $(id -u):$(id -g) ${{ github.workspace }}/target
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type != 'macos' }}
with:
name: Gyroflow-OpenFX-${{ matrix.targets.type }}
path: target/Gyroflow-OpenFX*
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type != 'macos' }}
with:
name: Gyroflow-Adobe-${{ matrix.targets.type }}
path: target/Gyroflow-Adobe-*
- uses: actions/upload-artifact@v4
with:
name: Gyroflow-frei0r-${{ matrix.targets.type }}
path: target/libgyroflow_frei0r*
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type == 'macos' }}
with:
name: Gyroflow-OpenFX-${{ matrix.targets.type }}
path: target/Gyroflow-OpenFX-macos.dmg
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type == 'macos' }}
with:
name: Gyroflow-Adobe-${{ matrix.targets.type }}
path: target/Gyroflow-Adobe-macos.dmg
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type == 'macos' }}
with:
name: Gyroflow-OpenFX-${{ matrix.targets.type }}-zip
path: target/Gyroflow-OpenFX-macos.zip
- uses: actions/upload-artifact@v4
if: ${{ matrix.targets.type == 'macos' }}
with:
name: Gyroflow-Adobe-${{ matrix.targets.type }}-zip
path: target/Gyroflow-Adobe-macos.zip
github_release:
name: Create GitHub release
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
- run: find . -type f
- name: Publish
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: ./**/*