-
Notifications
You must be signed in to change notification settings - Fork 0
90 lines (76 loc) · 2.38 KB
/
RunTests.yml
File metadata and controls
90 lines (76 loc) · 2.38 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
name: "Run Tests"
on:
workflow_dispatch:
push:
branches:
- 'main'
- 'develop'
- 'linux'
env:
BUILD_TYPE: Release
BUILD_DIR: Builds
HOMEBREW_NO_INSTALL_CLEANUP: 1
SCCACHE_GHA_ENABLED: true
SCCACHE_CACHE_MULTIARCH: 1
IPP_DIR: C:\Program Files (x86)\Intel\oneAPI\ipp\latest\lib\cmake\ipp
jobs:
RunTests:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Linux
os: ubuntu-22.04
generator: Ninja
- name: macOS
os: macos-14
generator: Ninja
- name: Windows
os: windows-latest
generator: Ninja
steps:
- uses: ilammy/msvc-dev-cmd@v1
- name: Set up Clang
if: runner.os == 'Linux'
uses: egor-tensin/setup-clang@v2.1
with:
version: 18
platform: x64
- name: Install JUCE's Linux Deps
if: runner.os == 'Linux'
# Thanks to McMartin & co https://forum.juce.com/t/list-of-juce-dependencies-under-linux/15121/44
run: |
sudo apt-get update && sudo apt install libasound2-dev libx11-dev libxinerama-dev libxext-dev libfreetype6-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev xvfb ninja-build libcurl4-openssl-dev
- name: Install IPP (Windows)
if: (runner.os == 'Windows')
run: |
nuget install intelipp.static.win-x64 -Version 2022.2.0.575
- name: Install Ninja (Windows)
if: runner.os == 'Windows'
run: choco install ninja
- name: Install macOS Deps
if: ${{ runner.os == 'macOS' }}
run: brew install ninja osxutils
- name: Checkout
uses: actions/checkout@v3
- name: Cache
uses: mozilla-actions/sccache-action@v0.0.9
- name: Build
shell: bash
run: |
cmake -B ./Build/ -G "${{ matrix.generator }}" -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE=Release .
ninja -C ./Build/
- name: Unit Tests
if: ${{ runner.os == 'Windows' }}
shell: bash
run: ./Build/Tests/Tests.exe
- name: Unit Tests
if: ${{ runner.os == 'macOS' }}
shell: bash
run: ./Build/Tests/Tests
- name: Unit Tests
if: ${{ runner.os == 'Linux' }}
shell: bash
run: ./Build/Tests/Tests