PC Music Generator - a Virtual Modular Synthesizer
1on:
2 push:
3 branches: main
4 pull_request:
5 branches: main
6
7name: CI
8
9env:
10 # This is required to enable the web_sys clipboard API which egui_web uses
11 # https://rustwasm.github.io/wasm-bindgen/api/web_sys/struct.Clipboard.html
12 # https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html
13 RUSTFLAGS: --cfg=web_sys_unstable_apis
14
15jobs:
16 check:
17 name: Check
18 runs-on: ubuntu-latest
19 steps:
20 - uses: actions/checkout@v2
21 - uses: actions-rs/toolchain@v1
22 with:
23 profile: minimal
24 toolchain: nightly
25 override: true
26 - run: sudo apt-get install -y libasound2 libasound2-dev libatk1.0-0 libgtk-3-dev
27 - uses: actions-rs/cargo@v1
28 with:
29 command: check
30 args: --all-features
31
32 check_wasm:
33 name: Check wasm32
34 runs-on: ubuntu-latest
35 steps:
36 - uses: actions/checkout@v2
37 - uses: actions-rs/toolchain@v1
38 with:
39 profile: minimal
40 toolchain: nightly
41 target: wasm32-unknown-unknown
42 override: true
43 - uses: actions-rs/cargo@v1
44 with:
45 command: check
46 args: --all-features --lib --target wasm32-unknown-unknown
47
48# Welp, i don't really have any tests for now
49 # test:
50 # name: Test Suite
51 # runs-on: ubuntu-latest
52 # steps:
53 # - uses: actions/checkout@v2
54 # - uses: actions-rs/toolchain@v1
55 # with:
56 # profile: minimal
57 # toolchain: nightly
58 # override: true
59 # - run: sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev
60 # - run: sudo apt-get install -y libasound2 libasound2-dev libatk1.0-0 libgtk-3-dev
61 # - uses: actions-rs/cargo@v1
62 # with:
63 # command: test
64 # args: --lib
65
66 fmt:
67 name: Rustfmt
68 runs-on: ubuntu-latest
69 steps:
70 - uses: actions/checkout@v2
71 - uses: actions-rs/toolchain@v1
72 with:
73 profile: minimal
74 toolchain: nightly
75 override: true
76 components: rustfmt
77 - uses: actions-rs/cargo@v1
78 with:
79 command: fmt
80 args: --all -- --check
81
82 clippy:
83 name: Clippy
84 runs-on: ubuntu-latest
85 steps:
86 - uses: actions/checkout@v2
87 - uses: actions-rs/toolchain@v1
88 with:
89 profile: minimal
90 toolchain: nightly
91 override: true
92 components: clippy
93 - run: sudo apt-get install -y libasound2 libasound2-dev libatk1.0-0 libgtk-3-dev
94 - uses: actions-rs/cargo@v1
95 with:
96 command: clippy
97 args: -- -D warnings
98
99 trunk-pcmg:
100 name: trunk pcmg
101 runs-on: ubuntu-latest
102 steps:
103 - uses: actions/checkout@v2
104 - uses: actions-rs/toolchain@v1
105 with:
106 profile: minimal
107 toolchain: nightly
108 target: wasm32-unknown-unknown
109 override: true
110 - name: Download and install Trunk binary
111 run: wget -qO- https://github.com/thedodd/trunk/releases/latest/download/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
112 - name: Create dist folder
113 run: mkdir ./dist
114 - name: Build PCMG
115 run: ./trunk build
116
117 trunk-rack-designer:
118 name: trunk rack-designer
119 runs-on: ubuntu-latest
120 steps:
121 - uses: actions/checkout@v2
122 - uses: actions-rs/toolchain@v1
123 with:
124 profile: minimal
125 toolchain: nightly
126 target: wasm32-unknown-unknown
127 override: true
128 - name: Download and install Trunk binary
129 run: wget -qO- https://github.com/thedodd/trunk/releases/latest/download/trunk-x86_64-unknown-linux-gnu.tar.gz | tar -xzf-
130 - name: Create dist folder
131 run: mkdir ./dist
132 - name: Build rack-designer
133 run: cd ./rack-designer && ../trunk build