-
Notifications
You must be signed in to change notification settings - Fork 15
83 lines (70 loc) · 2.45 KB
/
Copy pathci.yml
File metadata and controls
83 lines (70 loc) · 2.45 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
name: CI
# Task 1.11 — GitHub Actions CI for the DTMF-Decoder v2 foundation build.
#
# Runs `./gradlew build --no-daemon` on Ubuntu, macOS, and Windows against a
# Temurin JDK 17 toolchain (Requirements 1.3, 1.9). Gradle caches are keyed on
# the wrapper properties and the version catalog so cache hits survive across
# branches but invalidate whenever the build toolchain or pinned library
# versions change.
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
permissions:
contents: read
jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 17 (Temurin)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Cache Gradle caches and wrapper dists
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build
run: ./gradlew build --no-daemon
# Integration-scale tests (Task 13.5, Requirements 12.1, 12.2, 12.3) live
# in their own source set and are excluded from the default `test` task,
# so they do not slow down the matrix `build` job. They run once on Linux
# only — the detection-rate and noise-FP tests are deterministic, so a
# single-OS run is enough.
integration-test:
name: Integration tests (Linux)
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 17 (Temurin)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Cache Gradle caches and wrapper dists
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Run integration tests
run: ./gradlew :dtmf-core:integrationTest --no-daemon