Compare commits

..

2 Commits

Author SHA1 Message Date
mngshm
0591a22eeb don't show edit icon if user in list is admin 2025-02-21 13:29:13 +05:30
mngshm
b2d9305f7f allow admin to see storage Limit on dashboard 2025-02-21 09:32:58 +05:30
3911 changed files with 64494 additions and 197386 deletions

View File

@@ -1,21 +1,24 @@
name: Report a bug
description: For regressions only (things that were working earlier)
description: Let us know if something's not working the way you expected.
labels: []
body:
- type: markdown
attributes:
value: |
Before opening a new issue, **please** ensure
1. You are on the latest version,
2. You've searched for existing issues,
3. It was working earlier (otherwise use [this](https://github.com/ente-io/ente/discussions/categories/enhancements))
4. It is not about self hosting (otherwise use [this](https://github.com/ente-io/ente/discussions/categories/q-a))
Before opening a new bug report, please ensure
1. you are on the latest version (it might've already been fixed),
2. you've searched for existing issues (please add your observations as a comment there instead of creating a duplicate).
If you are self hosting, please create a community [Q&A](https://github.com/ente-io/ente/discussions/categories/q-a) instead.
- type: textarea
attributes:
label: Description
description: >
Describe the bug and steps to reproduce the behaviour, and how it
differs from the previously working behaviour.
Please describe the bug. If possible, also include the steps to
reproduce the behaviour, and the expected behaviour (sometimes
bugs are just expectation mismatches, in which case this would be
a good fit for [feature
requests](https://github.com/ente-io/ente/discussions/categories/feature-requests)).
validations:
required: true
- type: input
@@ -23,17 +26,6 @@ body:
label: Version
description: The version can be seen at the bottom of settings.
placeholder: e.g. v1.2.3
- type: input
attributes:
label: Last working version
description: >
The version where things were last known to be working. It is fine
if you don't remember the exact version (mention roughly then),
but **if there just isn't a last working version, then please file
it as an
[enhancement](https://github.com/ente-io/ente/discussions/categories/enhancements))**
(where the community upvotes can be used to help prioritize).
placeholder: e.g. v1.2.3
- type: dropdown
attributes:
label: What product are you using?

View File

@@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: Enhacements, feature requests, feedback and questions
- name: Feature requests and questions
url: https://github.com/ente-io/ente/discussions
about: Please use Discussions for everything apart from the above.

View File

@@ -9,10 +9,6 @@ on:
# Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest
@@ -24,8 +20,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/apps/auth/"
config: "mobile/apps/auth/crowdin.yml"
base_path: "auth/"
config: "auth/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false

View File

@@ -8,10 +8,6 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
@@ -23,8 +19,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/apps/auth/"
config: "mobile/apps/auth/crowdin.yml"
base_path: "auth/"
config: "auth/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: true

View File

@@ -6,16 +6,13 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/auth
working-directory: auth
steps:
- name: Checkout code and submodules
@@ -43,7 +40,7 @@ jobs:
- name: Build PlayStore AAB
run: |
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
@@ -55,7 +52,7 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord

View File

@@ -10,15 +10,12 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/auth
working-directory: auth
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
@@ -33,7 +30,7 @@ jobs:
exit 1
fi
done
- name: Verify all icons are less than 20KB
run: |
find assets/custom-icons -type f -name "*.svg" | while read -r file; do

View File

@@ -31,16 +31,13 @@ on:
env:
FLUTTER_VERSION: "3.24.3"
permissions:
contents: write
jobs:
build-linux-latest:
runs-on: ubuntu-22.04
build-ubuntu:
runs-on: ubuntu-20.04
defaults:
run:
working-directory: mobile/apps/auth
working-directory: auth
steps:
- name: Checkout code and submodules
@@ -71,7 +68,7 @@ jobs:
- name: Build independent APK
run: |
flutter build apk --dart-define=cronetHttpNoPlay=true --release --flavor independent
flutter build apk --release --flavor independent --dart-define=app.flavor=independent
mv build/app/outputs/flutter-apk/app-independent-release.apk artifacts/ente-${{ github.ref_name }}.apk
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
@@ -83,7 +80,7 @@ jobs:
# disable this step if release tag contains nightly or beta
if: startsWith(github.ref, 'refs/tags/auth-v') && !contains(github.ref, 'nightly') && !contains(github.ref, 'beta')
run: |
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore --dart-define=cronetHttpNoPlay=true
flutter build appbundle --release --flavor playstore --dart-define=app.flavor=playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_auth_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
@@ -93,38 +90,27 @@ jobs:
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff5 xz-utils libarchive-tools libcurl4-openssl-dev
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config libsqlite3-dev locate appindicator3-0.1 libappindicator3-dev libffi-dev libtiff5
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
dart pub global activate --source git https://github.com/ente-io/flutter_distributor_fork --git-ref develop --git-path packages/flutter_distributor
# RPM
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
# APPIMAGE
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
# DEB
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
flutter_distributor package --platform=linux --targets=deb --skip-clean
mv dist/**/*-*-linux.deb artifacts/ente-${{ github.ref_name }}-x86_64.deb
env:
LIBSODIUM_USE_PKGCONFIG: 1
- name: Generate checksums
- name: Generate checksums and push to artifacts
run: |
sha256sum artifacts/ente-auth-*.apk >> artifacts/sha256sum-apk
sha256sum artifacts/ente-auth-*.deb artifacts/ente-auth-*.rpm artifacts/ente-auth-*.AppImage >> artifacts/sha256sum-linux
sha256sum artifacts/ente-* > artifacts/sha256sum-apk-deb
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "mobile/apps/auth/artifacts/*"
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
@@ -136,16 +122,76 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.auth
releaseFiles: mobile/apps/auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: auth/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
build-windows:
runs-on: windows-latest
environment: "auth-win-build"
build-fedora-etc:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/auth
working-directory: 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: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff6 xz-utils libarchive-tools libcurl4-openssl-dev
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
run: |
wget -O appimagetool "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod +x appimagetool
mv appimagetool /usr/local/bin/
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref develop --git-path packages/flutter_distributor
# Run below command if it is a beta or nightly
if [[ ${{ github.ref }} =~ beta|nightly ]]; then
flutter_distributor package --platform=linux --targets=pacman --skip-clean
mv dist/**/*-*-linux.pacman artifacts/ente-${{ github.ref_name }}-x86_64.pacman
fi
flutter_distributor package --platform=linux --targets=rpm --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
- name: Generate checksums
run: sha256sum artifacts/ente-* >> artifacts/sha256sum-rpm-appimage
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
build-windows:
runs-on: windows-latest
defaults:
run:
working-directory: auth
steps:
- name: Checkout code and submodules
@@ -167,7 +213,7 @@ jobs:
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
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --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
@@ -175,22 +221,14 @@ jobs:
- 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
- name: Code sign Windows installer and EXE
uses: dlemstra/code-sign-action@v1
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
certificate: "${{ secrets.WINDOWS_CERTIFICATE }}"
password: "${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}"
files: |
auth/artifacts/ente-${{ github.ref_name }}-installer.exe
auth/ente-${{ github.ref_name }}-windows/auth.exe
- name: Zip Windows EXE and DLLs
run: tar.exe -a -c -f artifacts/ente-${{ github.ref_name }}-windows.zip ente-${{ github.ref_name }}-windows
@@ -201,7 +239,7 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "mobile/apps/auth/artifacts/*"
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true
@@ -211,7 +249,7 @@ jobs:
defaults:
run:
working-directory: mobile/apps/auth
working-directory: auth
steps:
- name: Checkout code and submodules
@@ -298,7 +336,7 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "mobile/apps/auth/artifacts/*"
artifacts: "auth/artifacts/*"
draft: true
allowUpdates: true
updateOnlyUnreleased: true

View File

@@ -1,70 +0,0 @@
name: "Windows build & Sign (auth)"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.24.3"
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

View File

@@ -12,10 +12,6 @@ on:
tags:
- "cli-v*"
permissions:
contents: write
packages: write
jobs:
draft-release:
runs-on: ubuntu-latest

View File

@@ -1,53 +0,0 @@
# The only reason we're making a custom CodeQL configuration is because the
# default setup does not have an option to run daily / weekly instead of per
# push, which is too slow.
#
# In the future, it might become faster. Then just delete this file, and revert
# to the default configuration.
#
# References:
# https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/
name: "CodeQL"
on:
workflow_dispatch: # Allow running manually
schedule:
- cron: "22 1 * * 1"
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: 'ubuntu-latest'
permissions:
contents: read
# Required for all workflows.
security-events: write
# Required to fetch internal or private CodeQL packs.
packages: read
strategy:
fail-fast: false
matrix:
include:
- language: actions
build-mode: none
- language: go
build-mode: autobuild
- language: javascript-typescript
build-mode: none
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
build-mode: ${{ matrix.build-mode }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View File

@@ -3,9 +3,6 @@ name: "Release (copycat-db)"
on:
workflow_dispatch: # Run manually
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -7,9 +7,6 @@ on:
- "desktop/**"
- ".github/workflows/desktop-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
@@ -23,7 +20,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "desktop/yarn.lock"

View File

@@ -10,9 +10,6 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"

View File

@@ -1,32 +0,0 @@
name: "Lint (docs)"
on:
# Run on every pull request (open or push to it) that changes docs/
pull_request:
paths:
- "docs/**"
- ".github/workflows/docs-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
cache: "yarn"
cache-dependency-path: "web/yarn.lock"
- run: yarn install
- run: yarn pretty:check

View File

@@ -10,9 +10,6 @@ on:
- "docs/**"
- ".github/workflows/docs-verify-build.yml"
permissions:
contents: read
jobs:
verify-build:
runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "docs/yarn.lock"

View File

@@ -10,9 +10,6 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -7,9 +7,6 @@ on:
- "infra/staff/**"
- ".github/workflows/infra-deploy-staff.yml"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -25,7 +22,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "infra/staff/yarn.lock"

View File

@@ -5,14 +5,10 @@ on:
branches: [main]
paths:
# Run workflow when mobiles's intl_en.arb is changed
- "mobile/apps/photos/lib/l10n/intl_en.arb"
- "mobile/lib/l10n/intl_en.arb"
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
permissions:
contents: write
pull-requests: write
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest
@@ -24,8 +20,8 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/apps/photos/"
config: "mobile/apps/photos/crowdin.yml"
base_path: "mobile/"
config: "mobile/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false

View File

@@ -1,4 +1,4 @@
name: "Sync Crowdin translations (mobile/photos)"
name: "Sync Crowdin translations (mobile)"
on:
schedule:
@@ -8,10 +8,6 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
@@ -23,14 +19,14 @@ jobs:
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/apps/photos/"
config: "mobile/apps/photos/crowdin.yml"
base_path: "mobile/"
config: "mobile/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: true
localization_branch_name: translations/mobile
create_pull_request: true
pull_request_title: "[mobile/photos] New translations"
pull_request_title: "[mobile] New translations"
pull_request_body: "New translations from [Crowdin](https://crowdin.com/project/ente-photos-app)"
pull_request_base_branch_name: "main"
project_id: 574741

View File

@@ -1,77 +0,0 @@
name: "Internal release (photos)"
on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.32.5"
RUST_VERSION: "1.85.1"
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/photos
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Install Flutter ${{ env.FLUTTER_VERSION }}
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust ${{ env.RUST_VERSION }}
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Install Flutter Rust Bridge
run: cargo install flutter_rust_bridge_codegen
- name: Setup keys
uses: timheuer/base64-to-file@v1
with:
fileName: "keystore/ente_photos_key.jks"
encodedString: ${{ secrets.SIGNING_KEY_PHOTOS }}
- name: Build PlayStore AAB
run: |
flutter build appbundle --dart-define=cronetHttpNoPlay=true --release --flavor playstore
env:
SIGNING_KEY_PATH: "/home/runner/work/_temp/keystore/ente_photos_key.jks"
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS_PHOTOS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD_PHOTOS }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_STORE_PASSWORD_PHOTOS }}
- name: Upload AAB to PlayStore
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true
title: "🏆 Internal release available for Photos"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00

View File

@@ -4,10 +4,7 @@ on:
workflow_dispatch: # Allow manually running the action
env:
FLUTTER_VERSION: "3.32.5"
permissions:
contents: write
FLUTTER_VERSION: "3.24.3"
jobs:
build:
@@ -15,7 +12,7 @@ jobs:
defaults:
run:
working-directory: mobile/apps/photos
working-directory: mobile
steps:
- name: Checkout code and submodules
@@ -55,14 +52,14 @@ jobs:
with:
serviceAccountJsonPlainText: ${{ secrets.SERVICE_ACCOUNT_JSON }}
packageName: io.ente.photos
releaseFiles: mobile/apps/photos/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
releaseFiles: mobile/build/app/outputs/bundle/playstoreRelease/app-playstore-release.aab
track: internal
- name: Notify Discord
uses: sarisia/actions-status-discord@v1
with:
webhook: ${{ secrets.DISCORD_INTERNAL_RELEASE_WEBHOOK }}
nodetail: true
title: "🏆 Internal release Photos (Branch: ${{ github.ref_name }})"
title: "🏆 Internal release available for Photos"
description: "[Download](https://play.google.com/store/apps/details?id=io.ente.photos)"
color: 0x00ff00

View File

@@ -4,21 +4,19 @@ on:
# Run on every pull request (open or push to it) that changes mobile/
pull_request:
paths:
- "mobile/apps/photos/**"
- "mobile/**"
- ".github/workflows/mobile-lint.yml"
env:
FLUTTER_VERSION: "3.32.5"
permissions:
contents: read
FLUTTER_VERSION: "3.24.3"
jobs:
lint:
runs-on: ubuntu-latest
defaults:
run:
working-directory: mobile/apps/photos
working-directory: mobile
steps:
- name: Checkout code and submodules
uses: actions/checkout@v4

View File

@@ -9,10 +9,7 @@ on:
- "photos-v*"
env:
FLUTTER_VERSION: "3.32.5"
permissions:
contents: write
FLUTTER_VERSION: "3.24.3"
jobs:
build:
@@ -20,7 +17,7 @@ jobs:
defaults:
run:
working-directory: mobile/apps/photos
working-directory: mobile
steps:
- name: Checkout code and submodules
@@ -62,5 +59,5 @@ jobs:
- name: Create a draft GitHub release
uses: ncipollo/release-action@v1
with:
artifacts: "mobile/apps/photos/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/apps/photos/build/app/outputs/flutter-apk/sha256sum"
artifacts: "mobile/build/app/outputs/flutter-apk/ente-${{ github.ref_name }}.apk,mobile/build/app/outputs/flutter-apk/sha256sum"
draft: true

View File

@@ -7,9 +7,6 @@ on:
- "server/**"
- ".github/workflows/server-lint.yml"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest

View File

@@ -7,10 +7,6 @@ on:
# Run manually if needed to publish out of schedule.
workflow_dispatch:
permissions:
contents: write # for pushing the `ghcr/server` branch
packages: write
jobs:
publish:
runs-on: ubuntu-latest
@@ -40,6 +36,6 @@ jobs:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch ghcr/server to point to source commit
- name: Update branch server/ghcr to point to source commit
run: |
git push -f origin HEAD:refs/heads/ghcr/server
git push -f origin HEAD:refs/heads/server/ghcr

View File

@@ -3,9 +3,6 @@ name: "Release (server)"
on:
workflow_dispatch: # Run manually
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest

View File

@@ -12,10 +12,6 @@ on:
# `gh workflow run web-crowdin-push-both.yml --ref <my-branch>`
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
push-both-to-crowdin:
runs-on: ubuntu-latest

View File

@@ -22,15 +22,6 @@ on:
# Also allow manually running the workflow.
workflow_dispatch:
# "In order to push translations and create pull requests, the Crowdin GitHub
# action requires the `GITHUB_TOKEN` to have write permission on the `contents`
# and `pull-requests`.
#
# - https://github.com/crowdin/github-action?tab=readme-ov-file#permissions
permissions:
contents: write
pull-requests: write
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest

View File

@@ -15,9 +15,6 @@ on:
- "payments"
- "photos"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -29,11 +26,13 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -15,9 +15,6 @@ on:
- "payments"
- "photos"
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -29,11 +26,13 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -11,9 +11,6 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -37,11 +34,12 @@ jobs:
uses: actions/checkout@v4
with:
ref: ${{ steps.select-branch.outputs.branch }}
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -19,9 +19,6 @@ on:
# Also allow manually running the workflow
workflow_dispatch:
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
@@ -33,11 +30,13 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -7,9 +7,6 @@ on:
- "web/**"
- ".github/workflows/web-lint.yml"
permissions:
contents: read
# Cancel in-progress lint runs when a new commit is pushed.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
@@ -28,7 +25,7 @@ jobs:
- name: Setup node and enable yarn caching
uses: actions/setup-node@v4
with:
node-version: 22
node-version: 20
cache: "yarn"
cache-dependency-path: "web/yarn.lock"

View File

@@ -1,38 +0,0 @@
name: "Publish ghcr (web)"
on:
# Run automatically every Wednesday, at 07:00 UTC.
schedule:
- cron: '0 7 * * 3'
# Run manually if needed to publish out of schedule.
workflow_dispatch:
permissions:
contents: write # for pushing the `ghcr/web` branch
packages: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build and push
uses: mr-smithers-excellent/docker-build-push@v6
with:
dockerfile: web/Dockerfile
directory: web
# Resultant package name will be ghcr.io/ente-io/web
image: web
registry: ghcr.io
enableBuildKit: true
multiPlatform: true
platform: linux/amd64,linux/arm64
tags: ${{ github.sha }}, latest
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Update branch ghcr/web to point to source commit
run: |
git push -f origin HEAD:refs/heads/ghcr/web

8
.gitmodules vendored
View File

@@ -3,9 +3,13 @@
url = https://github.com/ente-io/sentry-dart.git
branch = sentry_flutter_ente
[submodule "auth/flutter"]
path = mobile/apps/auth/flutter
path = auth/flutter
url = https://github.com/flutter/flutter.git
branch = stable
[submodule "auth/assets/simple-icons"]
path = mobile/apps/auth/assets/simple-icons
path = auth/assets/simple-icons
url = https://github.com/simple-icons/simple-icons.git
[submodule "web/apps/photos/thirdparty/photoswipe"]
path = web/apps/photos/thirdparty/photoswipe
url = https://github.com/ente-io/PhotoSwipe.git
branch = single-thread

View File

@@ -23,7 +23,7 @@ Just hang around, enjoy the vibe. Answer someone's query on our
[Discord](https://discord.gg/z2YVKkycX3), or pile on in the sporadic #off-topic
rants there. Chuckle (or wince!) at our [Twitter](https://twitter.com/enteio)
memes. Suggest a new feature in our [Github
Discussions](https://github.com/ente-io/ente/discussions/new?category=enhancements),
Discussions](https://github.com/ente-io/ente/discussions/new?category=feature-requests),
or upvote the existing ones that you feel we should focus on first. Provide your
opinion on existing threads.
@@ -63,13 +63,13 @@ See [docs/](docs/README.md) for how to edit these documents.
Code is a small aspect of community, and the ways mentioned above are more
important in helping us. But if you'd _really_ like to contribute code, it is
best to start small. Consider some well-scoped changes, say like adding more
[custom icons to auth](mobile/apps/auth/docs/adding-icons.md).
[custom icons to auth](auth/docs/adding-icons.md).
Each of the individual product/platform specific directories in this repository
have instructions on setting up a dev environment.
For anything beyond trivial bug fixes, please use
[discussions](https://github.com/ente-io/ente/discussions) instead of performing
For anything beyond trivial bug fixes, please use [features requests and
discussions](https://github.com/ente-io/ente/discussions) instead of performing
code changes directly.
> [!TIP]

View File

@@ -35,7 +35,7 @@ Private sharing. Collaborative albums. Family plans. Easy import, easier export.
Background uploads. The list goes on. And of course, all of this, while being
fully end-to-end encrypted across platforms.
Ente Photos is a paid service, but we offer 10GB of free storage.
Ente Photos is a paid service, but we offer 5GB of free storage.
You can also clone this repository and choose to self-host.
<br />
@@ -95,8 +95,8 @@ please see our [support guide](SUPPORT.md).
<img src=".github/assets/ente-ducky.png" width=200 alt="Ente's Mascot, Ducky,
inviting people to Ente's source code repository" />
Please visit the [community section](https://ente.io/about#community) for all the ways to
connect with our community.
Please visit our [community page](https://ente.io/community) for all the ways to
connect with the community.
[![Discord](https://img.shields.io/discord/948937918347608085?style=for-the-badge&logo=Discord&logoColor=white&label=Discord)](https://discord.gg/z2YVKkycX3)
[![Ente's Blog RSS](https://img.shields.io/badge/blog-rss-F88900?style=for-the-badge&logo=rss&logoColor=white)](https://ente.io/blog/rss.xml)

View File

@@ -41,8 +41,4 @@ lib/generated_plugin_registrant.dart
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
android/key.properties
dist/
# FVM Version Cache
.fvm/
lib/l10n/arb/*.dart
dist/

View File

@@ -19,16 +19,16 @@ without relying on third party stores.
You can alternatively install the build from PlayStore or F-Droid.
<a href="https://play.google.com/store/apps/details?id=io.ente.auth">
<img height="59" src="../../../.github/assets/play-store-badge.png">
<img height="59" src="../.github/assets/play-store-badge.png">
</a>
<a href="https://f-droid.org/packages/io.ente.auth/">
<img height="59" src="../../../.github/assets/f-droid-badge.png">
<img height="59" src="../.github/assets/f-droid-badge.png">
</a>
### iOS / Apple Silicon macOS
<a href="https://apps.apple.com/us/app/ente-authenticator/id6444121398">
<img height="59" src="../../../.github/assets/app-store-badge.svg">
<img height="59" src="../.github/assets/app-store-badge.svg">
</a>
### Desktop
@@ -73,7 +73,7 @@ If the code you're working needs to modify user facing strings, see
## 🔩 Architecture
The architecture that powers end-to-end encrypted storage and sync of your
tokens has been documented [here](architecture/README.md).
tokens has been documented [here](../architecture/README.md).
## 🌍 Translate
@@ -98,7 +98,7 @@ more, see [docs/adding-icons](docs/adding-icons.md).
The best way to support this project is by checking out [Ente
Photos](../mobile/README.md) or spreading the word.
For more ways to contribute, see [../../../CONTRIBUTING.md](../../../CONTRIBUTING.md).
For more ways to contribute, see [../CONTRIBUTING.md](../CONTRIBUTING.md).
## Certificate Fingerprints
@@ -113,4 +113,4 @@ apksigner verify --print-certs <path_to_apk>
## ⭐️ About
To know more about Ente and the ways to get in touch or seek help, see [our main
README](../../../README.md) or visit [ente.io](https://ente.io).
README](../README.md) or visit [ente.io](https://ente.io).

View File

@@ -5,8 +5,6 @@ gradle-wrapper.jar
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
/app/.cxx/
/.kotlin/
# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app

View File

@@ -30,11 +30,10 @@ if (keystorePropertiesFile.exists()) {
android {
namespace "io.ente.auth"
compileSdk 35
compileSdk 34
ndkVersion flutter.ndkVersion
compileOptions {
coreLibraryDesugaringEnabled = true
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
@@ -57,7 +56,7 @@ android {
applicationId "io.ente.auth"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 22
minSdkVersion 21
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
@@ -116,6 +115,4 @@ flutter {
source '../..'
}
dependencies {
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
}
dependencies {}

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 69 B

View File

Before

Width:  |  Height:  |  Size: 69 B

After

Width:  |  Height:  |  Size: 69 B

View File

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 253 KiB

View File

Before

Width:  |  Height:  |  Size: 237 KiB

After

Width:  |  Height:  |  Size: 237 KiB

View File

Before

Width:  |  Height:  |  Size: 604 KiB

After

Width:  |  Height:  |  Size: 604 KiB

Some files were not shown because too many files have changed in this diff Show More