Skip to content

Commit b851b17

Browse files
committed
feat: add GitHub Actions CI/CD workflow
1 parent 6cf0e0a commit b851b17

2 files changed

Lines changed: 87 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
test:
11+
name: Unit Tests
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Set up JDK 17
19+
uses: actions/setup-java@v4
20+
with:
21+
java-version: '17'
22+
distribution: 'temurin'
23+
24+
- name: Cache Gradle
25+
uses: actions/cache@v4
26+
with:
27+
path: |
28+
~/.gradle/caches
29+
~/.gradle/wrapper
30+
key: gradle-${{ hashFiles('gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }}
31+
restore-keys: gradle-
32+
33+
- name: Make gradlew executable
34+
run: chmod +x gradlew
35+
36+
- name: Run unit tests
37+
run: ./gradlew testDebugUnitTest
38+
39+
- name: Upload test report
40+
uses: actions/upload-artifact@v4
41+
if: always()
42+
with:
43+
name: test-report
44+
path: app/build/reports/tests/testDebugUnitTest/
45+
retention-days: 7
46+
47+
build:
48+
name: Build Debug APK
49+
runs-on: ubuntu-latest
50+
needs: test
51+
52+
steps:
53+
- name: Checkout
54+
uses: actions/checkout@v4
55+
56+
- name: Set up JDK 17
57+
uses: actions/setup-java@v4
58+
with:
59+
java-version: '17'
60+
distribution: 'temurin'
61+
62+
- name: Cache Gradle
63+
uses: actions/cache@v4
64+
with:
65+
path: |
66+
~/.gradle/caches
67+
~/.gradle/wrapper
68+
key: gradle-${{ hashFiles('gradle/libs.versions.toml', 'gradle/wrapper/gradle-wrapper.properties') }}
69+
restore-keys: gradle-
70+
71+
- name: Make gradlew executable
72+
run: chmod +x gradlew
73+
74+
- name: Install Android SDK 36
75+
run: |
76+
yes | $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager "platforms;android-36" --sdk_root=$ANDROID_SDK_ROOT
77+
78+
- name: Build debug APK
79+
run: ./gradlew assembleDebug
80+
81+
- name: Upload debug APK
82+
uses: actions/upload-artifact@v4
83+
with:
84+
name: NoiseGuard-debug
85+
path: app/build/outputs/apk/debug/app-debug.apk
86+
retention-days: 7

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
Open offices run at 65–72 dB. A busy café hits 75. Prolonged exposure above 70 dB causes hearing fatigue, and most people have no idea how loud their environment actually is. NoiseGuard measures it.
44

5+
![CI](https://github.com/MarkADom/NoiseGuard/actions/workflows/ci.yml/badge.svg)
56
![API](https://img.shields.io/badge/API-24%2B-brightgreen?style=for-the-badge)
67
![Kotlin](https://img.shields.io/badge/Kotlin-2.2.10-purple?style=for-the-badge&logo=kotlin&logoColor=white)
78
![Compose BOM](https://img.shields.io/badge/Compose_BOM-2026.02.01-blue?style=for-the-badge&logo=jetpackcompose&logoColor=white)

0 commit comments

Comments
 (0)