forked from LiveSplit/obs-livesplit-one
-
Notifications
You must be signed in to change notification settings - Fork 0
144 lines (122 loc) · 4.26 KB
/
rust.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
name: Rust
on:
pull_request:
push:
branches:
- 'master'
- 'macos-testing'
tags:
- '*'
# The colors mess with the problem matcher.
# env:
# CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
label:
- macOS aarch64
- macOS x86_64
- macOS x86_64-v3
include:
- label: macOS aarch64
target: aarch64-apple-darwin
rust_flags: -L framework=/Applications/OBS.app/Contents/Frameworks/libobs.framework/Versions/A
os: macOS-latest
arm: yes
features: auto-splitting
cross: skip
install_target: true
- label: macOS x86_64
target: x86_64-apple-darwin
rust_flags: -L framework=/Applications/OBS.app/Contents/Frameworks
os: macOS-latest
arm: no
features: auto-splitting
cross: skip
- label: macOS x86_64-v3
target: x86_64-apple-darwin
target_rename: x86_64_v3-apple-darwin
rust_flags: -C target-cpu=x86-64-v3 -L framework=/Applications/OBS.app/Contents/Frameworks/libobs.framework/
os: macOS-latest
arm: no
features: auto-splitting
cross: skip
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
rust-version: ${{ matrix.toolchain || 'stable' }}
- name: Install Target
if: matrix.install_target != ''
run: rustup target add ${{ matrix.target }}
- name: Install arm64 OBS
if: matrix.os == 'macOS-latest' && matrix.arm == 'yes'
run: curl https://cdn-fastly.obsproject.com/downloads/obs-studio-29.1.3-macos-arm64.dmg -o obs.dmg && hdiutil attach obs.dmg && sudo cp -R /Volumes/obs-studio-29.1.3-macos-arm64/OBS.app /Applications && hdiutil unmount /Volumes/obs-studio-29.1.3-macos-arm64
- name: Install x64 OBS
if: matrix.os == 'macOS-latest' && matrix.arm == 'no'
run: brew install --cask obs
- name: Download cross
if: matrix.cross == ''
uses: robinraju/[email protected]
with:
repository: "cross-rs/cross"
latest: true
fileName: "cross-x86_64-unknown-linux-gnu.tar.gz"
out-file-path: "/home/runner/.cargo/bin"
- name: Install cross
if: matrix.cross == ''
run: |
cd ~/.cargo/bin
tar -xzf cross-x86_64-unknown-linux-gnu.tar.gz
- name: Build Shared Library
run: sh .github/workflows/build_shared.sh
env:
TARGET: ${{ matrix.target }}
SKIP_CROSS: ${{ matrix.cross }}
IS_DEPLOY: ${{ startsWith(github.ref, 'refs/tags/') && (matrix.release_anyway != '' || !(startsWith(matrix.toolchain, 'nightly') || startsWith(matrix.toolchain, 'beta'))) }}
FEATURES: ${{ matrix.features }}
OS_NAME: ${{ matrix.os }}
RUSTFLAGS: ${{ matrix.rust_flags }}
- name: Prepare Release
if: startsWith(github.ref, 'refs/tags/') && matrix.release == ''
shell: bash
run: .github/workflows/before_deploy.sh
env:
OS_NAME: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
RELEASE_TARGET: ${{ matrix.target_rename || matrix.target }}
PLUGIN_BITS: ${{ matrix.bits || '64bit' }}
- name: Release
if: startsWith(github.ref, 'refs/tags/') && matrix.release == ''
uses: softprops/action-gh-release@v1
with:
files: obs-livesplit-one-*.*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
clippy:
runs-on: ubuntu-latest
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
components: clippy
- name: Run Clippy
run: cargo clippy --all-features
format:
runs-on: ubuntu-latest
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
components: rustfmt
- name: Run cargo fmt
run: cargo fmt -- --check || true