Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
9f0d0de
:green_heart: Add documentation github actions
MaxMichel2 Mar 16, 2026
251b7bd
:green_heart: Add release github actions
MaxMichel2 Mar 16, 2026
6b7e1a6
:green_heart: Add close issues github actions
MaxMichel2 Mar 16, 2026
573103f
:green_heart: Add build github actions
MaxMichel2 Mar 16, 2026
0fc543c
:sparkles: Update gradle properties
MaxMichel2 Mar 17, 2026
1673d88
:green_heart: Improve jobs
MaxMichel2 Mar 19, 2026
407a987
:white_check_mark: Add Konsist tests
MaxMichel2 Mar 19, 2026
17c00d6
:white_check_mark: Add test structure
MaxMichel2 Mar 20, 2026
0fe389e
:white_check_mark: Add DevView module tests
MaxMichel2 Mar 20, 2026
c561eb9
:white_check_mark: Add Analytics module tests
MaxMichel2 Mar 20, 2026
cf60f83
:white_check_mark: Add FeatureFlip module tests
MaxMichel2 Mar 20, 2026
41662d7
:white_check_mark: Add Utils module tests
MaxMichel2 Mar 20, 2026
43fd15a
:white_check_mark: Add NetworkMock module tests
MaxMichel2 Mar 20, 2026
ed997d7
:white_check_mark: Add Kover and tests to GitHub actions
MaxMichel2 Mar 23, 2026
908b711
:white_check_mark: Add better coverage for tests
MaxMichel2 Mar 23, 2026
860ab80
:white_check_mark: Fix Konsist test issues
MaxMichel2 Mar 27, 2026
b386e02
:memo: Add Dokka documentation
MaxMichel2 Mar 27, 2026
46c4d99
:bug: Make scripts executable
MaxMichel2 Mar 27, 2026
a5b7758
:bug: Fix incorrect emulator test setup
MaxMichel2 Mar 27, 2026
c3ea3d0
:sparkles: Add CHANGELOG file
MaxMichel2 Mar 27, 2026
21a2f70
:green_heart: Update CI workflow
MaxMichel2 Mar 27, 2026
30857ee
:white_check_mark: Add test configurations to project
MaxMichel2 Mar 27, 2026
9e9be01
:bug: Fix test issues
MaxMichel2 Mar 27, 2026
09a8330
:memo: Update documentation issues
MaxMichel2 Mar 27, 2026
fe03e27
:white_check_mark: Add log for coverage
MaxMichel2 Mar 27, 2026
8057aee
:white_check_mark: Fix rebase issues
MaxMichel2 Apr 14, 2026
f4e0ed2
:bug: Possible fix for UI tests
Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
225 changes: 225 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
name: Build

on:
push:
branches:
- main
paths-ignore:
- '**.md'
- 'docs/**'
pull_request:
paths-ignore:
- '**.md'
- 'docs/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
# Skip build if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: macos-26
timeout-minutes: 60

steps:
- uses: actions/checkout@v6

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Assemble
run: ./gradlew assembleDebug -Pandroidx.baselineprofile.skipgeneration

unit-and-host-tests:
# Skip if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- uses: actions/checkout@v6

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Run unit + androidHostTest tests
run: ./gradlew cleanTestAndroidHostTest testAndroidHostTest -Pandroidx.baselineprofile.skipgeneration

- name: Upload unit + androidHostTest reports
if: failure()
uses: actions/upload-artifact@v7
with:
name: unit-and-host-test-reports
path: |
**/build/reports/tests/**
**/test-results/**

detekt:
# Skip if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- uses: actions/checkout@v6

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Run Detekt
run: ./gradlew detektFull

- name: Upload Detekt reports
if: failure()
uses: actions/upload-artifact@v7
with:
name: detekt-reports
path: '**/build/reports/detekt/**'

konsist:
# Skip if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- uses: actions/checkout@v6

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Run Konsist tests
run: ./gradlew :konsist:test

- name: Upload Konsist reports
if: failure()
uses: actions/upload-artifact@v7
with:
name: konsist-reports
path: 'konsist/build/reports/tests/**'

device-tests:
# Skip if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- uses: actions/checkout@v6

- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Enable KVM for emulator
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm

- name: Delete unnecessary tools
uses: jlumbroso/free-disk-space@v1.3.1
with:
android: false # Don't remove Android tools
tool-cache: true # Remove image tool cache - rm -rf "$AGENT_TOOLSDIRECTORY"
dotnet: true # rm -rf /usr/share/dotnet
haskell: true # rm -rf /opt/ghc...
swap-storage: true # rm -f /mnt/swapfile (4GiB)
docker-images: false # Takes 16s, enable if needed in the future
large-packages: false # includes google-cloud-sdk and it's slow

- name: Run Android Device Tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 35
target: google_apis
arch: x86_64
profile: pixel_5
force-avd-creation: false
emulator-options: -no-snapshot-load -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -camera-front none
disable-animations: true
script: ./gradlew connectedAndroidDeviceTest -Pandroidx.baselineprofile.skipgeneration

- name: Upload device test reports
if: failure()
uses: actions/upload-artifact@v7
with:
name: device-test-reports
path: |
**/build/reports/**
**/build/outputs/androidTest-results/**

coverage:
# Skip if head commit contains 'skip ci'
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest
needs: [ build, unit-and-host-tests ]
timeout-minutes: 30

steps:
- uses: actions/checkout@v6

- name: Setup JDK
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: 21

- uses: gradle/actions/setup-gradle@v5

- name: Generate Kover coverage report
run: ./gradlew :devview:koverXmlReport :devview:koverLog

- name: Upload coverage report
if: success()
uses: actions/upload-artifact@v7
with:
name: coverage-report
path: '**/build/reports/kover/**'
26 changes: 26 additions & 0 deletions .github/workflows/close-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Close inactive issues
on:
schedule:
- cron: "30 1 * * *"
workflow_dispatch:

jobs:
close-issues:
runs-on: ubuntu-latest

permissions:
issues: write
pull-requests: write

steps:
- uses: actions/stale@v10
with:
days-before-issue-stale: 21
days-before-issue-close: 7
stale-issue-label: "stale"
stale-issue-message: "This issue is stale because it has been open for 21 days with no activity."
close-issue-message: "This issue was closed because it has been inactive for 7 days since being marked as stale."
days-before-pr-stale: -1
days-before-pr-close: -1
exempt-issue-assignees: 'MaxMichel2,matthiaslao'
exempt-pr-assignees: 'MaxMichel2,matthiaslao'
31 changes: 31 additions & 0 deletions .github/workflows/pr-hygiene.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: PR Hygiene

on:
pull_request:
types: [ opened, edited, synchronize, reopened ]

jobs:
semantic-title:
runs-on: ubuntu-latest

permissions:
pull-requests: read

steps:
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
# Enforce conventional commit types matching the project's Renovate prefix conventions
types: |
feat
fix
docs
chore
refactor
test
ci
perf
build
revert
requireScope: false
Loading
Loading