Merge remote-tracking branch 'origin/main' into flutter-upgrade
This commit is contained in:
70
.github/workflows/auth-win-sign.yml
vendored
70
.github/workflows/auth-win-sign.yml
vendored
@@ -1,70 +0,0 @@
|
||||
name: "Windows build & Sign (auth)"
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Allow manually running the action
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.32.8"
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
environment: "auth-win-build"
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: mobile/apps/auth
|
||||
|
||||
steps:
|
||||
- name: Checkout code and submodules
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
- name: Create artifacts directory
|
||||
run: mkdir artifacts
|
||||
|
||||
- name: Build Windows installer
|
||||
run: |
|
||||
flutter config --enable-windows-desktop
|
||||
# dart pub global activate flutter_distributor
|
||||
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor
|
||||
make innoinstall
|
||||
flutter_distributor package --platform=windows --targets=exe --skip-clean
|
||||
mv dist/**/*-windows-setup.exe artifacts/ente-${{ github.ref_name }}-installer.exe
|
||||
|
||||
- name: Retain Windows EXE and DLLs
|
||||
run: cp -r build/windows/x64/runner/Release ente-${{ github.ref_name }}-windows
|
||||
|
||||
- name: Sign files with Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
with:
|
||||
azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }}
|
||||
azure-client-id: ${{ secrets.AZURE_CLIENT_ID }}
|
||||
azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }}
|
||||
endpoint: ${{ secrets.AZURE_ENDPOINT }}
|
||||
trusted-signing-account-name: ${{ secrets.AZURE_CODE_SIGNING_NAME }}
|
||||
certificate-profile-name: ${{ secrets.AZURE_CERT_PROFILE_NAME }}
|
||||
files: |
|
||||
${{ github.workspace }}/mobile/apps/auth/artifacts/ente-${{ github.ref_name }}-installer.exe
|
||||
${{ github.workspace }}/mobile/apps/auth/ente-${{ github.ref_name }}-windows/auth.exe
|
||||
file-digest: SHA256
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
|
||||
- name: Zip Windows EXE and DLLs
|
||||
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
|
||||
|
||||
- name: Generate checksums
|
||||
run: sha256sum artifacts/ente-* > artifacts/sha256sum-windows
|
||||
126
.github/workflows/photos-internal-release.yml
vendored
Normal file
126
.github/workflows/photos-internal-release.yml
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
name: "Internal Release V2 (photos)"
|
||||
|
||||
on:
|
||||
workflow_dispatch: # Manual trigger only
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: "3.24.3"
|
||||
ANDROID_KEYSTORE_PATH: "keystore/ente_photos_key.jks"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: macos-latest # Required for iOS builds
|
||||
environment: "ios-build"
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
defaults:
|
||||
run:
|
||||
working-directory: mobile/apps/photos
|
||||
|
||||
steps:
|
||||
# Common Setup
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Setup JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
|
||||
- name: Install Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: ${{ env.FLUTTER_VERSION }}
|
||||
cache: true
|
||||
|
||||
# Android Build
|
||||
- name: Setup Android signing key
|
||||
uses: timheuer/base64-to-file@v1
|
||||
with:
|
||||
fileName: ${{ env.ANDROID_KEYSTORE_PATH }}
|
||||
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
|
||||
|
||||
# - name: Build Android AAB
|
||||
# run: |
|
||||
# flutter build appbundle \
|
||||
# --dart-define=cronetHttpNoPlay=true \
|
||||
# --release \
|
||||
# --flavor playstore
|
||||
# env:
|
||||
# SIGNING_KEY_PATH: ${{ env.ANDROID_KEYSTORE_PATH }}
|
||||
# SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
|
||||
# SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
|
||||
# SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
|
||||
|
||||
# iOS Build (new secure implementation)
|
||||
- name: Install fastlane
|
||||
run: gem install fastlane
|
||||
|
||||
- name: Create ExportOptions.plist
|
||||
run: |
|
||||
cat <<EOF > ios/ExportOptions.plist
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>method</key>
|
||||
<string>app-store</string>
|
||||
<key>teamID</key>
|
||||
<string>${{ secrets.IOS_TEAM_ID }}</string>
|
||||
</dict>
|
||||
</plist>
|
||||
EOF
|
||||
|
||||
- name: Setup App Store Connect API Key
|
||||
run: |
|
||||
echo '${{ secrets.IOS_API_KEY }}' > api_key.json
|
||||
chmod 600 api_key.json
|
||||
|
||||
- name: Build iOS IPA
|
||||
run: |
|
||||
flutter build ipa \
|
||||
--release \
|
||||
--export-options-plist=ExportOptions.plist \
|
||||
--dart-define=cronetHttpNoPlay=true
|
||||
env:
|
||||
SIGNING_TEAM_ID: ${{ secrets.IOS_TEAM_ID }}
|
||||
|
||||
# Uploads
|
||||
# - name: Upload to Play Store
|
||||
# uses: r0adkll/upload-google-play@v1
|
||||
# with:
|
||||
# serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
|
||||
# packageName: io.ente.photos
|
||||
# releaseFiles: build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
|
||||
# track: internal
|
||||
|
||||
- name: Upload to TestFlight
|
||||
run: |
|
||||
fastlane pilot upload \
|
||||
--api_key_path api_key.json \
|
||||
--ipa "build/ios/ipa/Ente Photos.ipa" \
|
||||
--skip_waiting_for_build_processing \
|
||||
--apple_id ${{ secrets.IOS_APPLE_ID }} \
|
||||
--app_identifier "io.ente.photos"
|
||||
env:
|
||||
APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.IOS_API_KEY_ID }}
|
||||
APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.IOS_ISSUER_ID }}
|
||||
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.IOS_APP_SPECIFIC_PASSWORD }}
|
||||
|
||||
- name: Clean sensitive files
|
||||
run: |
|
||||
rm -f api_key.json
|
||||
rm -f ${{ env.ANDROID_KEYSTORE_PATH }}
|
||||
|
||||
- name: Notify Discord
|
||||
uses: sarisia/actions-status-discord@v1
|
||||
with:
|
||||
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
|
||||
title: "🚀 Dual Platform Release Uploaded"
|
||||
description: |
|
||||
**Android**: [Play Store Internal](https://play.google.com/store/apps/details?id=io.ente.photos)
|
||||
**iOS**: TestFlight build processing
|
||||
color: 0x00ff00
|
||||
44
.github/workflows/rust-lint.yml
vendored
Normal file
44
.github/workflows/rust-lint.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: "Lint (rust)"
|
||||
|
||||
on:
|
||||
# Run on every pull request (open or push to it) that changes rust/
|
||||
pull_request:
|
||||
paths:
|
||||
- "rust/**"
|
||||
- ".github/workflows/rust-lint.yml"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
# Cancel in-progress lint runs when a new commit is pushed.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
RUSTFLAGS: -D warnings
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: rust
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||
|
||||
- run: cargo fmt --check
|
||||
|
||||
- run: cargo clippy --all-targets --all-features
|
||||
|
||||
- run: cargo build
|
||||
Reference in New Issue
Block a user