-
Notifications
You must be signed in to change notification settings - Fork 0
132 lines (131 loc) · 3.71 KB
/
ci.yml
File metadata and controls
132 lines (131 loc) · 3.71 KB
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
name: build
on:
push:
pull_request:
jobs:
build-test-lint-linux:
name: Linux - build, test and lint
runs-on: ubuntu-latest
env:
LD_LIBRARY_PATH: /usr/local/lib
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Cache zimg
uses: actions/cache@v4
id: cache-zimg
with:
path: /usr/local/lib/libzimg*
key: ${{ runner.os }}-zimg-3.0.6
- name: Cache vapoursynth
uses: actions/cache@v4
id: cache-vapoursynth
with:
path: |
/usr/local/lib/libvapoursynth*
/usr/local/include/vapoursynth
key: ${{ runner.os }}-vapoursynth-${{ hashFiles('rustsynth-sys/vapoursynth/**') }}
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get --yes install g++ make autoconf automake libtool pkg-config nasm git libclang-dev python3 python3-dev
pip install Cython
- name: Build zimg
if: steps.cache-zimg.outputs.cache-hit != 'true'
run: |
git clone --branch release-3.0.6 --depth 1 https://github.com/sekrit-twc/zimg.git
cd zimg
./autogen.sh
./configure
make
sudo make install
- name: Build vapoursynth
if: steps.cache-vapoursynth.outputs.cache-hit != 'true'
run: |
cd rustsynth-sys/vapoursynth
./autogen.sh
./configure
make
sudo make install
- name: Build
run: |
cargo build
- name: Test
run: |
cargo test --workspace --lib --bins --tests --benches
- name: Lint
run: |
cargo clippy
- name: Check format
run: |
cargo fmt -- --check
build-test-lint-macos:
name: macOS - build, test and lint
runs-on: macos-latest
steps:
- uses: actions/checkout@v5
with:
submodules: recursive
- uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install VapourSynth
run: |
brew install vapoursynth
- name: Build
run: |
cargo build
- name: Test
run: |
cargo test --workspace --lib --bins --tests --benches
- name: Lint
run: |
cargo clippy
- name: Check format
run: |
cargo fmt -- --check
# build-test-lint-windows:
# name: Windows - build, test and lint
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v2
# with:
# submodules: recursive
# - name: Install VapourSynth
# run: |
# https://github.com/vapoursynth/vapoursynth/releases/download/R72/VapourSynth64-Portable-R72.zip
# - name: Set up Rust
# uses: actions-rust-lang/setup-rust-toolchain@v1
# with:
# toolchain: stable
# override: true
# components: rustfmt, clippy
# - name: Build
# run: |
# cargo build
# - name: Test
# run: |
# cargo test --workspace --lib --bins --tests --benches
# - name: Lint
# run: |
# cargo clippy
# - name: Check format
# run: |
# cargo fmt -- --check