-
Notifications
You must be signed in to change notification settings - Fork 0
73 lines (59 loc) · 1.96 KB
/
ci.yml
File metadata and controls
73 lines (59 loc) · 1.96 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
# Tests and compile smoke check on every PR and push to main.
name: CI
on:
pull_request:
push:
branches: [main, master]
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test-and-build:
name: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
outfile: dist/acestep-api
binary: dist/acestep-api
- os: macos-latest
outfile: dist/acestep-api
binary: dist/acestep-api
- os: windows-latest
outfile: dist/acestep-api.exe
binary: dist/acestep-api.exe
runs-on: ${{ matrix.os }}
steps:
# Do NOT use actions/checkout submodules: true|recursive — it always passes
# --recursive and breaks on ACE-Step-DAW's optional nested paths (no url in .gitmodules).
- name: Checkout
uses: actions/checkout@v4
with:
submodules: false
- name: Submodule ACE-Step-DAW only (non-recursive)
shell: bash
run: |
git submodule sync -- ACE-Step-DAW
git submodule update --init --depth 1 -- ACE-Step-DAW
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Unit tests
# Only ./test — do not run ACE-Step-DAW's Vitest suite (submodule).
run: bun run test
- name: Bundle acestep.cpp runtime (v0.0.3)
run: bun run bundle:acestep
- name: Create dist directory
shell: bash
run: mkdir -p dist
- name: Compile standalone binary
run: bun build ./src/index.ts --compile --minify --sourcemap=external --outfile ${{ matrix.outfile }}
- name: Sync acestep-runtime next to binary
run: bun run sync:runtime
- name: Verify binary exists
shell: bash
run: test -f "${{ matrix.binary }}"