Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

Commit 61413f3

Browse files
Merge pull request #68 from Beaver-Notes/development
Development
2 parents 651b9e3 + d9de1a4 commit 61413f3

497 files changed

Lines changed: 27559 additions & 11658 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.

.eslintrc.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"root": true,
3+
"env": {
4+
"es2021": true,
5+
"node": true,
6+
"browser": false
7+
},
8+
"extends": ["eslint:recommended"],
9+
"parser": "babel-eslint",
10+
"parserOptions": {
11+
"ecmaVersion": 12,
12+
"sourceType": "module"
13+
},
14+
"ignorePatterns": ["node_modules/**", "**/dist/**"],
15+
"rules": {
16+
/**
17+
* Having a semicolon helps the optimizer interpret your code correctly.
18+
* This avoids rare errors in optimized code.
19+
* @see https://twitter.com/alex_kozack/status/1364210394328408066
20+
*/
21+
"semi": ["error", "always"],
22+
/**
23+
* This will make the history of changes in the hit a little cleaner
24+
*/
25+
"comma-dangle": ["warn", "always-multiline"],
26+
/**
27+
* Just for beauty
28+
*/
29+
"quotes": ["warn", "single"]
30+
}
31+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
### Pull Request Type
2+
3+
- [ ] **Feature(s)**
4+
- [ ] **Bug Fix(es)**
5+
- [ ] **Minor Change(s)** (Docs/UI)
6+
7+
### Checklist
8+
9+
- [ ] Does this PR solve the **issue(s)**?
10+
- [ ] Has it been **tested**?
11+
- [ ] Is the UI **consistent**?
12+
- [ ] Are **translations** updated (if applicable)?
13+
- [ ] Have the changes been ported to mobile (if not, we will handle it)?
14+
15+
### Description
16+
17+
**Briefly describe the changes:**
18+
19+
### Related Issues
20+
21+
**Link to related issues/bugs:**
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Release - {{version}}
2+
3+
## Summary
4+
5+
<!-- Briefly describe the purpose of this release -->
6+
7+
## Changes
8+
9+
- <!-- List key features, bug fixes, or improvements here -->
10+
-
11+
12+
## Bug Fixes
13+
14+
- <!-- List any critical bug fixes included -->
15+
16+
## Known Issues
17+
18+
- <!-- Mention any known issues or limitations -->

.github/pull_request_template.md

Lines changed: 0 additions & 43 deletions
This file was deleted.

.github/workflows/build-android.yml

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build Android
1+
name: Build Android Release
22

33
on:
44
push:
@@ -8,8 +8,15 @@ on:
88

99
jobs:
1010
build:
11-
name: Build APK
11+
name: Build Android Testing
1212
runs-on: ubuntu-latest
13+
env:
14+
VITE_DROPBOX_CLIENT_ID: ${{ secrets.DROPBOX_CLIENT_ID }}
15+
VITE_DROPBOX_CLIENT_SECRET: ${{ secrets.DROPBOX_CLIENT_SECRET }}
16+
VITE_IOS_GOOGLE_CLIENT_ID: ${{ secrets.IOS_GOOGLE_CLIENT_ID }}
17+
VITE_ANDROID_GOOGLE_CLIENT_ID: ${{ secrets.ANDROID_GOOGLE_CLIENT_ID }}
18+
VITE_ONEDRIVE_CLIENT_ID: ${{ secrets.ONEDRIVE_CLIENT_ID }}
19+
VITE_ONEDRIVE_ANDROID_HASH: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
1320

1421
steps:
1522
- name: Checkout source
@@ -19,22 +26,31 @@ jobs:
1926
uses: actions/setup-java@v4
2027
with:
2128
distribution: "zulu"
22-
java-version: "17"
29+
java-version: "21"
2330

2431
- name: Install unzip (required by setup-android when using act)
2532
run: sudo apt-get update && sudo apt-get install -y unzip
2633

2734
- name: Setup Android SDK
2835
uses: android-actions/setup-android@v3
29-
with:
30-
cmdline-tools-version: 11479570
3136

3237
- name: Setup Node.js
3338
uses: actions/setup-node@v4
3439
with:
3540
node-version: 20
3641
cache: "yarn"
3742

43+
- name: Create .env file
44+
run: |
45+
cat <<EOF > .env
46+
VITE_DROPBOX_CLIENT_ID=${VITE_DROPBOX_CLIENT_ID}
47+
VITE_DROPBOX_CLIENT_SECRET=${VITE_DROPBOX_CLIENT_SECRET}
48+
VITE_IOS_GOOGLE_CLIENT_ID=${VITE_IOS_GOOGLE_CLIENT_ID}
49+
VITE_ANDROID_GOOGLE_CLIENT_ID=${VITE_ANDROID_GOOGLE_CLIENT_ID}
50+
VITE_ONEDRIVE_CLIENT_ID=${VITE_ONEDRIVE_CLIENT_ID}
51+
VITE_ONEDRIVE_ANDROID_HASH=${VITE_ONEDRIVE_ANDROID_HASH}
52+
EOF
53+
3854
- name: Install app dependencies
3955
run: yarn install --frozen-lockfile
4056

@@ -52,18 +68,31 @@ jobs:
5268
echo "${{ secrets.RELEASE_KEYSTORE }}" > android/app/release.jks.base64
5369
base64 -d android/app/release.jks.base64 > android/app/release.jks
5470
55-
- name: Build app bundle
71+
- name: Build AAB (Android App Bundle)
5672
env:
5773
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
5874
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
59-
GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
60-
ONEDRIVE_SHA1: ${{ secrets.ONEDRIVE_SHA1 }}
61-
ANDROID_HOME: ${{ env.ANDROID_HOME }} # Redundant but explicit
6275
run: cd android && ./gradlew bundleRelease
6376

64-
- name: Upload release bundle
77+
- name: Build APK
78+
env:
79+
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
80+
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
81+
run: cd android && ./gradlew assembleRelease
82+
83+
- name: Upload release AAB
6584
uses: actions/upload-artifact@v4
6685
with:
67-
name: app-release
86+
name: app-release-aab
6887
path: android/app/build/outputs/bundle/release/app-release.aab
69-
retention-days: 60
88+
retention-days: 60
89+
90+
- name: Upload release APK
91+
uses: actions/upload-artifact@v4
92+
with:
93+
name: app-release-apk
94+
path: android/app/build/outputs/apk/release/app-release.apk
95+
retention-days: 60
96+
97+
- name: Cleanup keystore
98+
run: rm android/app/release.jks.base64 android/app/release.jks
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: Build Android Testing
2+
3+
on:
4+
push:
5+
branches:
6+
- testing
7+
workflow_dispatch:
8+
9+
jobs:
10+
build:
11+
name: Build Android Testing
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout source
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Java
19+
uses: actions/setup-java@v4
20+
with:
21+
distribution: "zulu"
22+
java-version: "21"
23+
24+
- name: Install unzip (required by setup-android when using act)
25+
run: sudo apt-get update && sudo apt-get install -y unzip
26+
27+
- name: Setup Android SDK
28+
uses: android-actions/setup-android@v3
29+
30+
- name: Setup Node.js
31+
uses: actions/setup-node@v4
32+
with:
33+
node-version: 20
34+
cache: "yarn"
35+
36+
- name: Create .env file
37+
env:
38+
VITE_DROPBOX_CLIENT_ID: ${{ secrets.DROPBOX_CLIENT_ID }}
39+
VITE_DROPBOX_CLIENT_SECRET: ${{ secrets.DROPBOX_CLIENT_SECRET }}
40+
VITE_IOS_GOOGLE_CLIENT_ID: ${{ secrets.IOS_GOOGLE_CLIENT_ID }}
41+
VITE_ANDROID_GOOGLE_CLIENT_ID: ${{ secrets.ANDROID_GOOGLE_CLIENT_ID }}
42+
VITE_ONEDRIVE_CLIENT_ID: ${{ secrets.ONEDRIVE_CLIENT_ID }}
43+
VITE_ONEDRIVE_ANDROID_HASH: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
44+
run: |
45+
cat <<EOF > .env
46+
VITE_DROPBOX_CLIENT_ID=${VITE_DROPBOX_CLIENT_ID}
47+
VITE_DROPBOX_CLIENT_SECRET=${VITE_DROPBOX_CLIENT_SECRET}
48+
VITE_IOS_GOOGLE_CLIENT_ID=${VITE_IOS_GOOGLE_CLIENT_ID}
49+
VITE_ANDROID_GOOGLE_CLIENT_ID=${VITE_ANDROID_GOOGLE_CLIENT_ID}
50+
VITE_ONEDRIVE_CLIENT_ID=${VITE_ONEDRIVE_CLIENT_ID}
51+
VITE_ONEDRIVE_ANDROID_HASH=${VITE_ONEDRIVE_ANDROID_HASH}
52+
EOF
53+
54+
- name: Install app dependencies
55+
run: yarn install --frozen-lockfile
56+
57+
- name: Build project
58+
run: yarn build
59+
60+
- name: Capacitor sync
61+
run: npx cap sync
62+
63+
- name: Extract Android signing key from env
64+
env:
65+
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
66+
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
67+
ONEDRIVE_SHA1: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
68+
GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
69+
run: |
70+
echo "${{ secrets.RELEASE_KEYSTORE }}" > android/app/release.jks.base64
71+
base64 -d android/app/release.jks.base64 > android/app/release.jks
72+
73+
- name: Build AAB (Android App Bundle)
74+
env:
75+
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
76+
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
77+
run: cd android && ./gradlew bundleRelease
78+
79+
- name: Build APK
80+
env:
81+
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
82+
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
83+
run: cd android && ./gradlew assembleRelease
84+
85+
- name: Upload release AAB
86+
uses: actions/upload-artifact@v4
87+
with:
88+
name: app-release-aab
89+
path: android/app/build/outputs/bundle/release/app-release.aab
90+
retention-days: 60
91+
92+
- name: Upload release APK
93+
uses: actions/upload-artifact@v4
94+
with:
95+
name: app-release-apk
96+
path: android/app/build/outputs/apk/release/app-release.apk
97+
retention-days: 60
98+
99+
- name: Cleanup keystore
100+
run: rm android/app/release.jks.base64 android/app/release.jks

.github/workflows/build_ios.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build iOS
1+
name: Build iOS Release
22

33
on:
44
push:
@@ -15,6 +15,12 @@ jobs:
1515
BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
1616
BUILD_PROVISION_PROFILE_SHARE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_SHARE_BASE64 }}
1717
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
18+
VITE_DROPBOX_CLIENT_ID: ${{ secrets.DROPBOX_CLIENT_ID }}
19+
VITE_DROPBOX_CLIENT_SECRET: ${{ secrets.DROPBOX_CLIENT_SECRET }}
20+
VITE_IOS_GOOGLE_CLIENT_ID: ${{ secrets.IOS_GOOGLE_CLIENT_ID }}
21+
VITE_ANDROID_GOOGLE_CLIENT_ID: ${{ secrets.ANDROID_GOOGLE_CLIENT_ID }}
22+
VITE_ONEDRIVE_CLIENT_ID: ${{ secrets.ONEDRIVE_CLIENT_ID }}
23+
VITE_ONEDRIVE_ANDROID_HASH: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
1824

1925
steps:
2026
- name: Checkout source
@@ -31,6 +37,17 @@ jobs:
3137
node-version: 20
3238
cache: yarn
3339

40+
- name: Create .env file
41+
run: |
42+
cat <<EOF > .env
43+
VITE_DROPBOX_CLIENT_ID=${VITE_DROPBOX_CLIENT_ID}
44+
VITE_DROPBOX_CLIENT_SECRET=${VITE_DROPBOX_CLIENT_SECRET}
45+
VITE_IOS_GOOGLE_CLIENT_ID=${VITE_IOS_GOOGLE_CLIENT_ID}
46+
VITE_ANDROID_GOOGLE_CLIENT_ID=${VITE_ANDROID_GOOGLE_CLIENT_ID}
47+
VITE_ONEDRIVE_CLIENT_ID=${VITE_ONEDRIVE_CLIENT_ID}
48+
VITE_ONEDRIVE_ANDROID_HASH=${VITE_ONEDRIVE_ANDROID_HASH}
49+
EOF
50+
3451
- name: Install app dependencies
3552
run: yarn install --frozen-lockfile
3653

@@ -59,7 +76,7 @@ jobs:
5976
security import certificate.p12 -k ios-build.keychain -P "$P12_PASSWORD" -T /usr/bin/codesign
6077
security set-key-partition-list -S apple-tool:,apple: -s -k "$KEYCHAIN_PASSWORD" ios-build.keychain
6178
62-
- name: Install PODS
79+
- name: Install Pods
6380
run: |
6481
cd ios/App
6582
pod install
@@ -87,7 +104,7 @@ jobs:
87104
path: output/
88105
retention-days: 60
89106

90-
# Optional: Cleanup keychain after build (uncomment if needed)
107+
# Optional: Cleanup keychain after build
91108
#- name: Clean up keychain and provisioning profile
92109
# if: ${{ always() }}
93110
# run: |

0 commit comments

Comments
 (0)