Skip to content

Commit 1029a3c

Browse files
first commit
0 parents  commit 1029a3c

117 files changed

Lines changed: 12400 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Bug report
3+
about: Report a reproducible issue in QuickStack
4+
title: "[Bug] "
5+
labels: bug
6+
assignees: ""
7+
---
8+
9+
## Summary
10+
11+
Describe the problem clearly.
12+
13+
## Steps to reproduce
14+
15+
1.
16+
2.
17+
3.
18+
19+
## Expected result
20+
21+
What should happen?
22+
23+
## Actual result
24+
25+
What happened instead?
26+
27+
## Environment
28+
29+
- Device:
30+
- Android version:
31+
- App version:
32+
- Entry point: launcher / tile / notification
33+
34+
## Notes
35+
36+
Add logs, screenshots, or anything else useful.
37+
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
name: Feature request
3+
about: Suggest a focused improvement aligned with QuickStack's scope
4+
title: "[Feature] "
5+
labels: enhancement
6+
assignees: ""
7+
---
8+
9+
## Problem
10+
11+
What user problem are you trying to solve?
12+
13+
## Proposed solution
14+
15+
Describe the smallest useful solution.
16+
17+
## Why this fits QuickStack
18+
19+
Explain how it supports fast capture, low friction, or Android-native behavior.
20+
21+
## Out of scope
22+
23+
List anything that should explicitly not be included.
24+

.github/pull_request_template.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Summary
2+
3+
-
4+
5+
## What changed
6+
7+
-
8+
9+
## Verification
10+
11+
- [ ] `./gradlew assembleDebug`
12+
- [ ] `./gradlew testDebugUnitTest`
13+
- [ ] Manually tested the changed flow
14+
15+
## Notes
16+
17+
-
18+
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
name: Android Build
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches:
7+
- main
8+
tags:
9+
- "v*"
10+
pull_request:
11+
12+
permissions:
13+
contents: write
14+
15+
jobs:
16+
verify:
17+
runs-on: ubuntu-latest
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Set up JDK 23
24+
uses: actions/setup-java@v4
25+
with:
26+
distribution: temurin
27+
java-version: "23"
28+
cache: gradle
29+
30+
- name: Set up Android SDK
31+
uses: android-actions/setup-android@v3
32+
33+
- name: Make Gradle executable
34+
run: chmod +x ./gradlew
35+
36+
- name: Run unit tests
37+
run: ./gradlew testDebugUnitTest
38+
39+
- name: Compile debug Kotlin
40+
run: ./gradlew :app:compileDebugKotlin
41+
42+
build-apk:
43+
runs-on: ubuntu-latest
44+
needs: verify
45+
46+
env:
47+
ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }}
48+
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
49+
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
50+
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
51+
52+
steps:
53+
- name: Checkout
54+
uses: actions/checkout@v4
55+
56+
- name: Set up JDK 23
57+
uses: actions/setup-java@v4
58+
with:
59+
distribution: temurin
60+
java-version: "23"
61+
cache: gradle
62+
63+
- name: Set up Android SDK
64+
uses: android-actions/setup-android@v3
65+
66+
- name: Make Gradle executable
67+
run: chmod +x ./gradlew
68+
69+
- name: Decode release keystore
70+
if: ${{ env.ANDROID_KEYSTORE_BASE64 != '' }}
71+
run: |
72+
echo "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$RUNNER_TEMP/release.keystore"
73+
echo "ANDROID_KEYSTORE_PATH=$RUNNER_TEMP/release.keystore" >> "$GITHUB_ENV"
74+
75+
- name: Build release APK
76+
run: ./gradlew assembleRelease
77+
78+
- name: Upload APK artifact
79+
uses: actions/upload-artifact@v4
80+
with:
81+
name: quickstack-release-apk
82+
path: app/build/outputs/apk/release/*.apk
83+
if-no-files-found: error
84+
85+
publish-main-release:
86+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
87+
runs-on: ubuntu-latest
88+
needs: build-apk
89+
90+
steps:
91+
- name: Download APK artifact
92+
uses: actions/download-artifact@v4
93+
with:
94+
name: quickstack-release-apk
95+
path: dist
96+
97+
- name: Publish latest main release
98+
uses: softprops/action-gh-release@v2
99+
with:
100+
tag_name: main-latest
101+
name: QuickStack Main Build
102+
prerelease: true
103+
make_latest: false
104+
files: dist/*.apk
105+
106+
publish-versioned-release:
107+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
108+
runs-on: ubuntu-latest
109+
needs: build-apk
110+
111+
steps:
112+
- name: Download APK artifact
113+
uses: actions/download-artifact@v4
114+
with:
115+
name: quickstack-release-apk
116+
path: dist
117+
118+
- name: Publish tagged release
119+
uses: softprops/action-gh-release@v2
120+
with:
121+
tag_name: ${{ github.ref_name }}
122+
name: QuickStack ${{ github.ref_name }}
123+
generate_release_notes: true
124+
make_latest: true
125+
files: dist/*.apk

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Gradle
2+
.gradle/
3+
build/
4+
*/build/
5+
6+
# Android / IDE
7+
.idea/
8+
*.iml
9+
local.properties
10+
captures/
11+
.DS_Store
12+
13+
# Kotlin / Java
14+
*.class
15+
out/
16+
17+
# Signing / local secrets
18+
*.jks
19+
*.keystore
20+
keystore.properties
21+
22+
# Fastlane / screenshots / generated artifacts
23+
fastlane/report.xml
24+
fastlane/Preview.html
25+
fastlane/screenshots
26+
fastlane/test_output
27+

0 commit comments

Comments
 (0)