Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
112 changes: 112 additions & 0 deletions .github/workflows/android.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Build Android

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
changes:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
android: ${{ steps.filter.outputs.android }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
android:
- 'android/**'
- 'assets/**'
- 'lib/**'
- 'pubspec.yaml'

Android:
needs: changes
if: ${{ needs.changes.outputs.android == 'true' }}
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "25"
cache: "gradle"

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
cache: true

- name: Cache Gradle
uses: actions/cache@v3
env:
cache-name: cache-gradle
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/wrapper/gradle-wrapper.properties', '**/build.gradle') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-

- name: Cache Android NDK
uses: actions/cache@v4
with:
path: |
/usr/local/lib/android/sdk/ndk/27.0.12077973
/usr/local/lib/android/sdk/ndk/28.2.13676358
key: ${{ runner.os }}-ndk-27-28

- name: Cache Android sdk
uses: actions/cache@v3
env:
cache-name: cache-Android-sdk
with:
path: |
/usr/local/lib/android/sdk/platforms/android-31
/usr/local/lib/android/sdk/platforms/android-33
key: ${{ runner.os }}-android-platforms-${{ env.cache-name }}-${{ hashFiles('android/gradle.properties') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-

- name: Install dependencies and run build_runner
run: |
flutter pub get
dart run build_runner build --delete-conflicting-outputs

- name: Decode keystore
run: |
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 --decode > android/app/my-release-key.jks

- name: Create key.properties
run: |
cat > android/key.properties << EOF
storePassword=${{ secrets.KEYSTORE_PASSWORD }}
keyPassword=${{ secrets.KEY_PASSWORD }}
keyAlias=${{ secrets.KEY_ALIAS }}
storeFile=my-release-key.jks
EOF

- name: Build Release APK
run: flutter build apk --release --target-platform android-arm64,android-x64

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: DPIP-Android-Release
path: build/app/outputs/flutter-apk/*.apk
retention-days: 7
compression-level: 6
78 changes: 78 additions & 0 deletions .github/workflows/ios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Build iOS

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
changes:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
ios: ${{ steps.filter.outputs.ios }}
steps:
- uses: actions/checkout@v4
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
ios:
- 'ios/**'
- 'assets/**'
- 'lib/**'
- 'pubspec.yaml'

iOS:
needs: changes
if: ${{ needs.changes.outputs.ios == 'true' }}
runs-on: macos-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
cache: true

- name: Cache CocoaPods
uses: actions/cache@v4
with:
path: |
ios/Pods
~/Library/Caches/CocoaPods
key: ${{ runner.os }}-pods-${{ hashFiles('ios/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-

- name: Install dependencies and run build_runner
run: |
flutter pub get
dart run build_runner build --delete-conflicting-outputs

- name: Install iOS Pods
working-directory: ios
run: pod install --repo-update

- name: Build iOS App and create IPA
run: |
flutter build ios --debug --no-codesign
mkdir -p Payload
cp -R build/ios/iphoneos/Runner.app Payload/Runner.app
zip -qr DPIP.ipa Payload

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: DPIP-iOS
path: |
build/ios/iphoneos/Runner.app
DPIP.ipa
retention-days: 7
compression-level: 6
14 changes: 7 additions & 7 deletions .github/workflows/review.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
# (pull_request_target: opened/synchronize/reopened) and on-demand re-review
# via comments starting with '/open-code-review' or '@open-code-review'.
#
# Required secrets/vars (Settings -> Secrets and variables -> Actions):
# secret OCR_LLM_URL LLM API endpoint
# secret OCR_LLM_AUTH_TOKEN LLM auth token (mapped to OCR_LLM_TOKEN)
# variable OCR_LLM_MODEL model name
# variable OCR_LLM_USE_ANTHROPIC 'true' for Anthropic, 'false' for OpenAI-compatible
# Required org/repo secrets (Settings -> Secrets and variables -> Actions):
# OCR_LLM_URL LLM API endpoint
# OCR_LLM_AUTH_TOKEN LLM auth token (mapped to OCR_LLM_TOKEN)
# OCR_LLM_MODEL model name
# OCR_LLM_USE_ANTHROPIC 'true' for Anthropic, 'false' for OpenAI-compatible
#
# For the full list of action inputs/outputs and the four comment-posting modes
# (sticky / incremental), see action.yml at the repo root.
Expand Down Expand Up @@ -115,8 +115,8 @@ jobs:
with:
llm_url: ${{ secrets.OCR_LLM_URL }}
llm_auth_token: ${{ secrets.OCR_LLM_AUTH_TOKEN }}
llm_model: ${{ vars.OCR_LLM_MODEL }}
llm_use_anthropic: ${{ vars.OCR_LLM_USE_ANTHROPIC }}
llm_model: ${{ secrets.OCR_LLM_MODEL }}
language: 中文
# For issue_comment triggers, pass the resolved refs; for
# pull_request_target the action resolves them from the event.
base_ref: ${{ steps.pr-context.outputs.base_ref }}
Expand Down
Loading