Compare commits

...

10 Commits

Author SHA1 Message Date
Neeraj
989b1c6439 Update auth-internal-release.yml 2025-08-06 17:15:14 +05:30
Neeraj
06c3541888 Update auth-internal-release.yml 2025-08-06 15:49:46 +05:30
Neeraj
aca698e035 Mention name of the provision profile 2025-08-06 15:45:36 +05:30
Neeraj
46a3e609bd Update auth-internal-release.yml 2025-08-06 15:34:04 +05:30
Prateek Sunal
72121b6181 fix: workflows keys 2025-08-06 14:26:56 +05:30
Prateek Sunal
f8d9aa230e fix: provisioning profile secret key 2025-08-04 13:08:09 +05:30
Prateek Sunal
ebd37ca22e fix: use correct project 2025-08-01 16:35:17 +05:30
Prateek Sunal
ce36037f9e fix: pip install 2025-08-01 16:29:47 +05:30
Prateek Sunal
4cbb4c69f8 chore: bump version 2025-08-01 16:17:20 +05:30
Prateek Sunal
7f4c87068d feat(auth): ios workflow 2025-08-01 16:15:24 +05:30
2 changed files with 157 additions and 52 deletions

View File

@@ -1,68 +1,173 @@
name: "Internal release (auth mobile)" name: "Internal release (auth mobile)"
on: on:
workflow_dispatch: # Allow manually running the action workflow_dispatch: # Allow manually running the action
env: env:
FLUTTER_VERSION: "3.24.3" FLUTTER_VERSION: "3.24.3"
permissions: permissions:
contents: write contents: write
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
defaults: - name: Setup JDK 17
run: uses: actions/setup-java@v1
working-directory: mobile/apps/auth with:
java-version: 17
steps: - name: Install Flutter ${{ env.FLUTTER_VERSION }}
- name: Checkout code and submodules uses: subosito/flutter-action@v2
uses: actions/checkout@v4 with:
with: channel: "stable"
submodules: recursive flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Setup JDK 17 - name: Setup keys
uses: actions/setup-java@v1 uses: timheuer/base64-to-file@v1
with: with:
java-version: 17 fileName: "keystore/ente_auth_key.jks"
encodedString: ${{ secrets.SIGNING_KEY }}
- name: Install Flutter ${{ env.FLUTTER_VERSION }} - name: Build PlayStore AAB
uses: subosito/flutter-action@v2 run: |
with: flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
channel: "stable" env:
flutter-version: ${{ env.FLUTTER_VERSION }} SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
cache: true SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }}
- name: Setup keys - name: Upload AAB to PlayStore
uses: timheuer/base64-to-file@v1 uses: r0adkll/upload-google-play@v1
with: with:
fileName: "keystore/ente_auth_key.jks" serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
encodedString: ${{ secrets.SIGNING_KEY }} packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Build PlayStore AAB - name: Notify Discord
run: | uses: sarisia/actions-status-discord@v1
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore with:
env: webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks" nodetail: true
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }} title: "🏆 Internal release available for Auth"
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }} description: "[Download](https://play.google.com/store/apps/details?id=io.ente.auth)"
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD }} color: 0x800080
- name: Upload AAB to PlayStore build-ios:
uses: r0adkll/upload-google-play@v1 runs-on: macos-15
with: environment: "ios-build"
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord env:
uses: sarisia/actions-status-discord@v1 FLUTTER_VERSION: "3.24.3"
with: APP_STORE_CONNECT_PRIVATE_KEY: ${{ secrets.IOS_API_KEY }}
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }} APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.IOS_ISSUER_ID }}
nodetail: true APP_STORE_CONNECT_KEY_IDENTIFIER: ${{ secrets.IOS_API_KEY_ID }}
title: "🏆 Internal release available for Auth" PROVISIONING_PROFILE: ${{ secrets.IOS_AUTHGITHUBDISTRIBUTION_PROFILE }}
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.auth)" DIST_CERTIFICATE: ${{ secrets.IOS_DISTRIBUTION_P12_CERT }}
color: 0x800080 DIST_CERTIFICATE_PASSWORD: ${{ secrets.IOS_DISTRIBUTION_P12_CERT_PWD }}
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: Install codemagic tools (optional)
run: pip3 install --break-system-packages codemagic-cli-tools
- name: Install provisioning profile
run: |
PROFILES_HOME="$HOME/Library/MobileDevice/Provisioning Profiles"
mkdir -p "$PROFILES_HOME"
PROFILE_PATH="$PROFILES_HOME/$(uuidgen).mobileprovision"
echo "$PROVISIONING_PROFILE" | base64 --decode > "$PROFILE_PATH"
echo "Saved provisioning profile to $PROFILE_PATH"
- name: Import iOS Distribution Certificate
run: |
# Create keychain
security create-keychain -p "apple123" build.keychain
security set-keychain-settings -lut 21600 build.keychain
security unlock-keychain -p "apple123" build.keychain
security list-keychains -s build.keychain
# Decode and import certificate
CERT_PATH=$RUNNER_TEMP/dist_cert.p12
echo "$DIST_CERTIFICATE" | base64 --decode > "$CERT_PATH"
security import "$CERT_PATH" -k build.keychain -P "$DIST_CERTIFICATE_PASSWORD" -T /usr/bin/codesign
# Allow codesign to use this identity
security set-key-partition-list -S apple-tool:,apple: -s -k "apple123" build.keychain
# Debug: show available code signing identities
security find-identity -v -p codesigning
- name: Create export options plist
run: |
cat <<EOF > $HOME/export_options.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>destination</key>
<string>export</string>
<key>generateAppStoreInformation</key>
<false/>
<key>manageAppVersionAndBuildNumber</key>
<true/>
<key>method</key>
<string>app-store-connect</string>
<key>signingStyle</key>
<string>automatic</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>6Z68YJY9Q2</string>
<key>testFlightInternalTestingOnly</key>
<false/>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
EOF
- name: Build iOS IPA
run: |
flutter build ipa \
--release \
--export-options-plist=$HOME/export_options.plist \
--dart-define=cronetHttpNoPlay=true
- name: Upload IPA to App Store Connect
run: |
IPA_PATH=$(find build/ios/archive/ -name "*.ipa" | head -n 1)
if [[ -f "$IPA_PATH" ]]; then
app-store-connect publish --path "$IPA_PATH"
else
echo "❌ IPA not found"
exit 1
fi

View File

@@ -1,7 +1,7 @@
name: ente_auth name: ente_auth
description: ente two-factor authenticator description: ente two-factor authenticator
version: 4.4.3+443 version: 4.4.4+444
publish_to: none publish_to: none
environment: environment: