Skip to content

Commit 4879631

Browse files
committed
Initial commit
0 parents  commit 4879631

56 files changed

Lines changed: 2768 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## 🚀 Description
2+
<!-- Describe your changes in detail -->
3+
4+
## 📄 Motivation and Context
5+
<!-- Why is this change required? What problem does it solve? -->
6+
<!-- If it fixes an open issue, please link to the issue here. -->
7+
8+
## 🧪 How Has This Been Tested?
9+
<!-- Please describe in detail how you tested your changes. -->
10+
<!-- Include details of your testing environment, tests ran to see how -->
11+
<!-- your change affects other areas of the code, etc. -->
12+
13+
## 📷 Screenshots (if appropriate)
14+
<!-- Please provide a screenshot of your change -->
15+
16+
## 📦 Types of changes
17+
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
18+
- [ ] Bug fix (non-breaking change which fixes an issue)
19+
- [ ] Version Bump (non-breaking change which bumps the version)
20+
- [ ] New feature (non-breaking change which adds functionality)
21+
- [ ] New utility (non-breaking change which supplements functionality)
22+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
23+
24+
## ✅ Checklist
25+
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
26+
<!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
27+
- [ ] My code follows the style guidelines of this project
28+
- [ ] I have performed a self-review of my code
29+
- [ ] I have commented my code, particularly in hard-to-understand areas
30+
- [ ] My changes generate no new warnings

.github/dependabot.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
version: 2
2+
updates:
3+
# For Gradle dependencies (including version catalogs)
4+
- package-ecosystem: "gradle"
5+
directory: "/"
6+
schedule:
7+
interval: "daily" # Can be "daily", "weekly", or "monthly"
8+
time: "02:00" # Run at 2 AM UTC
9+
open-pull-requests-limit: 5
10+
groups:
11+
# Group minor and patch updates together
12+
android-dependencies:
13+
patterns:
14+
- "androidx.*"
15+
- "com.android.*"
16+
- "com.google.*"
17+
- "io.*"
18+
- "org.*"
19+
testing-dependencies:
20+
patterns:
21+
- "androidx.*"
22+
- "de.mannodermaus.*"
23+
- "org.junit.*"
24+
- "io.mockk"
25+
- "com.willowtreeapps.assertk"
26+
- "app.cash.turbine"
27+
detekt:
28+
patterns:
29+
- "io.gitlab.arturbosch.detekt"
30+
31+
# For GitHub Actions (bonus!)
32+
- package-ecosystem: "github-actions"
33+
directory: "/"
34+
schedule:
35+
interval: "weekly"

.github/workflows/android-ci.yml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
name: Android CI
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
17+
- name: Set up JDK 17
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: '17'
21+
distribution: 'temurin'
22+
23+
- name: Cache Gradle packages
24+
uses: actions/cache@v4
25+
with:
26+
path: |
27+
~/.gradle/caches
28+
~/.gradle/wrapper
29+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
30+
restore-keys: |
31+
${{ runner.os }}-gradle-
32+
33+
- name: Grant execute permission for gradlew
34+
run: chmod +x gradlew
35+
36+
- name: Build project
37+
run: ./gradlew assembleDebug assembleDebugUnitTest
38+
39+
gradle:
40+
runs-on: ubuntu-latest
41+
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
42+
43+
steps:
44+
- name: Checkout Repo
45+
uses: actions/checkout@v4
46+
47+
- name: Setup Java
48+
uses: actions/setup-java@v4
49+
with:
50+
java-version: '17'
51+
distribution: 'temurin'
52+
53+
- name: Setup Gradle
54+
uses: gradle/actions/setup-gradle@v4
55+
56+
- name: Run Gradle
57+
run: ./gradlew build publishToMavenLocal --continue
58+
59+
detekt:
60+
runs-on: ubuntu-latest
61+
needs: build
62+
63+
steps:
64+
- name: Checkout code
65+
uses: actions/checkout@v4
66+
67+
- name: Set up JDK 17
68+
uses: actions/setup-java@v4
69+
with:
70+
java-version: '17'
71+
distribution: 'temurin'
72+
73+
- name: Cache Gradle packages
74+
uses: actions/cache@v4
75+
with:
76+
path: |
77+
~/.gradle/caches
78+
~/.gradle/wrapper
79+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
80+
restore-keys: |
81+
${{ runner.os }}-gradle-
82+
83+
- name: Grant execute permission for gradlew
84+
run: chmod +x gradlew
85+
86+
- name: Run Detekt
87+
run: ./gradlew detekt
88+
89+
- name: Upload Detekt reports
90+
uses: actions/upload-artifact@v4
91+
if: always()
92+
with:
93+
name: detekt-reports
94+
path: app/build/reports/detekt/
95+
96+
test:
97+
runs-on: ubuntu-latest
98+
needs: build
99+
100+
steps:
101+
- name: Checkout code
102+
uses: actions/checkout@v4
103+
104+
- name: Set up JDK 17
105+
uses: actions/setup-java@v4
106+
with:
107+
java-version: '17'
108+
distribution: 'temurin'
109+
110+
- name: Cache Gradle packages
111+
uses: actions/cache@v4
112+
with:
113+
path: |
114+
~/.gradle/caches
115+
~/.gradle/wrapper
116+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
117+
restore-keys: |
118+
${{ runner.os }}-gradle-
119+
120+
- name: Grant execute permission for gradlew
121+
run: chmod +x gradlew
122+
123+
- name: Run unit tests
124+
run: ./gradlew testDebugUnitTest
125+
126+
- name: Upload test results
127+
uses: actions/upload-artifact@v4
128+
if: always()
129+
with:
130+
name: test-results
131+
path: |
132+
app/build/test-results/testDebugUnitTest/
133+
app/build/reports/tests/testDebugUnitTest/

.github/workflows/cleanup.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# GitHub Actions Workflow responsible for cleaning up the template repository from
2+
# the template-specific files and configurations. This workflow is supposed to be triggered automatically
3+
# when a new template-based repository has been created.
4+
5+
name: Template Cleanup
6+
on:
7+
push:
8+
branches:
9+
- main
10+
11+
jobs:
12+
template-cleanup:
13+
name: Template Cleanup
14+
runs-on: ubuntu-latest
15+
if: github.event.repository.name != 'compose-android-template'
16+
steps:
17+
18+
# Check out current repository
19+
- name: Fetch Sources
20+
uses: actions/checkout@v4
21+
# Setup Java
22+
- uses: actions/setup-java@v4
23+
with:
24+
distribution: 'zulu'
25+
java-version: '17'
26+
# Setup Gradle
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v4
29+
# Cleanup project
30+
- name: Cleanup
31+
run: ./gradlew templateCleanup
32+
# Commit modified files
33+
- name: Commit files
34+
run: |
35+
git config --local user.email "action@github.com"
36+
git config --local user.name "GitHub Action"
37+
git add .
38+
git commit -m "Template cleanup"
39+
# Push changes
40+
- name: Push changes
41+
uses: ad-m/github-push-action@v0.8.0
42+
with:
43+
branch: main
44+
github_token: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
*.iml
2+
.gradle
3+
.kotlin/
4+
.idea/
5+
/local.properties
6+
/.idea/caches
7+
/.idea/libraries
8+
/.idea/modules.xml
9+
/.idea/workspace.xml
10+
/.idea/navEditor.xml
11+
/.idea/assetWizardSettings.xml
12+
.DS_Store
13+
/build
14+
/captures
15+
.externalNativeBuild
16+
.cxx
17+
local.properties
18+
# Project exclude paths
19+
/buildSrc/build/
20+
/buildSrc/build/classes/kotlin/main/

app/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

0 commit comments

Comments
 (0)