diff --git a/.github/workflows/build-mobile.yml b/.github/workflows/build-mobile.yml new file mode 100644 index 0000000000..bf85137072 --- /dev/null +++ b/.github/workflows/build-mobile.yml @@ -0,0 +1,55 @@ +name: Build Mobile + +on: + workflow_dispatch: + pull_request: + push: + branches: [main] + + +jobs: + build-sign-android: + name: Build and sign Android + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: "12.x" + cache: 'gradle' + + - name: Setup Flutter SDK + uses: subosito/flutter-action@v2 + with: + channel: 'stable' + flutter-version: '3.3.10' + cache: true + + - name: Create the Keystore + + env: + KEYSTORE_BASE64: ${{ secrets.ANDROID_SIGN_KEY_CONTENT }} + run: | + # import keystore from secrets + echo $KEYSTORE_BASE64 | base64 -d > $RUNNER_TEMP/my_production.keystore + + - name: Restore packages + working-directory: ./mobile + run: flutter pub get + + - name: Build Android App Bundle + working-directory: ./mobile + run: flutter build apk --release + + - name: Sign Android App Bundle + working-directory: ./mobile + run: jarsigner -keystore $RUNNER_TEMP/my_production.keystore -storepass ${{ secrets.ANDROID_KEY_PASSWORD }} -keypass ${{ secrets.ANDROID_STORE_PASSWORD }} -sigalg SHA256withRSA -digestalg SHA-256 -signedjar build/app/outputs/apk/release/app-release-signed.apk build/app/outputs/apk/release/*.apk ${{ secrets.ALIAS }} + + - name: Publish Android Artifact + uses: actions/upload-artifact@v1 + with: + name: release-apk-signed + path: mobile/build/app/outputs/apk/release/app-release-signed.apk \ No newline at end of file diff --git a/.gitignore b/.gitignore index 22480f94ab..32ef7ed927 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ uploads coverage mobile/gradle.properties +mobile/openapi/pubspec.lock \ No newline at end of file diff --git a/docs/docs/install/docker-compose.md b/docs/docs/install/docker-compose.md index 1241cec421..b32cf9919a 100644 --- a/docs/docs/install/docker-compose.md +++ b/docs/docs/install/docker-compose.md @@ -13,11 +13,11 @@ Download [`docker-compose.yml`][compose-file] [`example.env`][env-file]. From a directory of your choice (e.g. `./immich-app`) run the following commands: ```bash title="Get docker-compose.yml file" -wget https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml +wget https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml ``` ```bash title="Get .env file" -wget -O .env https://raw.githubusercontent.com/immich-app/immich/main/docker/example.env +wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env ``` ### Step 2 - Populate the .env file with custom values @@ -116,6 +116,6 @@ docker-compose pull && docker-compose up -d # Or `docker compose` Immich is currently under heavy development, which means you can expect breaking changes and bugs. Therefore, we recommend reading the release notes prior to updating and to take special care when using automated tools like [Watchtower][watchtower]. ::: -[compose-file]: https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml -[env-file]: https://raw.githubusercontent.com/immich-app/immich/main/docker/example.env +[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml +[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env [watchtower]: https://containrrr.dev/watchtower/ diff --git a/docs/docs/install/portainer.md b/docs/docs/install/portainer.md index 09c5917f3d..1d9b9b4fce 100644 --- a/docs/docs/install/portainer.md +++ b/docs/docs/install/portainer.md @@ -9,7 +9,7 @@ Install Immich using Portainer's Stack feature. 1. Go to "**Stacks**" in the left sidebar. 2. Click on "**Add stack**". 3. Give the stack a name (i.e. Immich), and select "**Web Editor**" as the build method. -4. Copy the content of the `docker-compose.yml` file from the [GitHub repository](https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml). +4. Copy the content of the `docker-compose.yml` file from the [GitHub repository](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml). 5. Replace `.env` with `stack.env` for all containers that need to use environment variables in the web editor. Dot Env Example -9. Copy the content of the `example.env` file from the [GitHub repository](https://raw.githubusercontent.com/immich-app/immich/main/docker/example.env) and paste into the editor. +9. Copy the content of the `example.env` file from the [GitHub repository](https://github.com/immich-app/immich/releases/latest/download/example.env) and paste into the editor. 10. Switch back to "**Simple Mode**". Select Plugins > Compose.Manager > Add New Stack > Label it Immich 3. Select the cog ⚙️ next to Immich then click "**Edit Stack**" -4. Click "**Compose File**" and then paste the entire contents of the [Immich Docker Compose](https://raw.githubusercontent.com/immich-app/immich/main/docker/docker-compose.yml) file into the Unraid editor +4. Click "**Compose File**" and then paste the entire contents of the [Immich Docker Compose](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml) file into the Unraid editor
Using an existing Postgres container? Click me! Otherwise proceed to step 5.
5. Click "**Save Changes**", you will be promoted to edit stack UI labels, just leave this blank and click "**Ok**" 6. Select the cog ⚙️ next to Immich, click "**Edit Stack**", then click "**Env File**" -7. Past the entire contents of the [Immich example.env](https://raw.githubusercontent.com/immich-app/immich/main/docker/example.env) file into the Unraid editor, then **before saving** edit the following: +7. Past the entire contents of the [Immich example.env](https://github.com/immich-app/immich/releases/latest/download/example.env) file into the Unraid editor, then **before saving** edit the following: - `UPLOAD_LOCATION`: Create a folder in your Images Unraid share and place the **absolute** location here > For example my _"images"_ share has a folder within it called _"immich"_. If I browse to this directory in the terminal and type `pwd` the output is `/mnt/user/images/immich`. This is the exact value I need to enter as my `UPLOAD_LOCATION` diff --git a/misc/release/pump-version.sh b/misc/release/pump-version.sh index c9fcf0f7e8..3faf98c7ae 100755 --- a/misc/release/pump-version.sh +++ b/misc/release/pump-version.sh @@ -63,6 +63,7 @@ if [ "$CURRENT_SERVER" != "$NEXT_SERVER" ]; then sed -i "s/^ \"version\": \"$CURRENT_SERVER\",$/ \"version\": \"$NEXT_SERVER\",/" server/package.json sed -i "s/^ \"version\": \"$CURRENT_SERVER\",$/ \"version\": \"$NEXT_SERVER\",/" server/package-lock.json sed -i "s/\"android\.injected\.version\.name\" => \"$CURRENT_SERVER\",/\"android\.injected\.version\.name\" => \"$NEXT_SERVER\",/" mobile/android/fastlane/Fastfile + sed -i "s/version_number: \"$CURRENT_SERVER\"$/version_number: \"$NEXT_SERVER\"/" mobile/ios/fastlane/Fastfile fi diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index cc0de01bad..da8ed20712 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -57,20 +57,21 @@ android { versionName flutterVersionName } - signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null - storePassword keystoreProperties['storePassword'] - } - } + // signingConfigs { + // release { + // keyAlias keystoreProperties['keyAlias'] + // keyPassword keystoreProperties['keyPassword'] + // storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + // storePassword keystoreProperties['storePassword'] + // } + // } buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.release + // signingConfig signingConfigs.release + signingConfig null } } } diff --git a/mobile/android/app/src/main/res/drawable-hdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-hdpi/android12splash.png new file mode 100644 index 0000000000..50ad4fe6e8 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-hdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-mdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-mdpi/android12splash.png new file mode 100644 index 0000000000..9bffdc36cd Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-mdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-night-hdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-night-hdpi/android12splash.png new file mode 100644 index 0000000000..50ad4fe6e8 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-night-hdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-night-mdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-night-mdpi/android12splash.png new file mode 100644 index 0000000000..9bffdc36cd Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-night-mdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-night-xhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-night-xhdpi/android12splash.png new file mode 100644 index 0000000000..141ed6e87d Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-night-xhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png new file mode 100644 index 0000000000..3f9ee2b4b0 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-night-xxhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png new file mode 100644 index 0000000000..5147fd261d Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-night-xxxhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-v21/background.png b/mobile/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000000..d4e7085f12 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-v21/background.png differ diff --git a/mobile/android/app/src/main/res/drawable-v21/launch_background.xml b/mobile/android/app/src/main/res/drawable-v21/launch_background.xml index f74085f3f6..f88598cf6c 100644 --- a/mobile/android/app/src/main/res/drawable-v21/launch_background.xml +++ b/mobile/android/app/src/main/res/drawable-v21/launch_background.xml @@ -1,12 +1,6 @@ - - - - - + + + diff --git a/mobile/android/app/src/main/res/drawable-xhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-xhdpi/android12splash.png new file mode 100644 index 0000000000..141ed6e87d Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-xxhdpi/android12splash.png new file mode 100644 index 0000000000..3f9ee2b4b0 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable-xxxhdpi/android12splash.png b/mobile/android/app/src/main/res/drawable-xxxhdpi/android12splash.png new file mode 100644 index 0000000000..5147fd261d Binary files /dev/null and b/mobile/android/app/src/main/res/drawable-xxxhdpi/android12splash.png differ diff --git a/mobile/android/app/src/main/res/drawable/background.png b/mobile/android/app/src/main/res/drawable/background.png new file mode 100644 index 0000000000..d4e7085f12 Binary files /dev/null and b/mobile/android/app/src/main/res/drawable/background.png differ diff --git a/mobile/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/mobile/android/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000000..6452c29baa --- /dev/null +++ b/mobile/android/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/res/drawable/ic_launcher_monochrome.xml b/mobile/android/app/src/main/res/drawable/ic_launcher_monochrome.xml new file mode 100644 index 0000000000..d98b89c74a --- /dev/null +++ b/mobile/android/app/src/main/res/drawable/ic_launcher_monochrome.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + diff --git a/mobile/android/app/src/main/res/drawable/launch_background.xml b/mobile/android/app/src/main/res/drawable/launch_background.xml index 304732f884..f88598cf6c 100644 --- a/mobile/android/app/src/main/res/drawable/launch_background.xml +++ b/mobile/android/app/src/main/res/drawable/launch_background.xml @@ -1,12 +1,6 @@ - - - - - + + + diff --git a/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000000..1084c24082 --- /dev/null +++ b/mobile/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/mobile/android/app/src/main/res/values-night-v31/styles.xml b/mobile/android/app/src/main/res/values-night-v31/styles.xml new file mode 100644 index 0000000000..8597414ae1 --- /dev/null +++ b/mobile/android/app/src/main/res/values-night-v31/styles.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/mobile/android/app/src/main/res/values-v31/styles.xml b/mobile/android/app/src/main/res/values-v31/styles.xml new file mode 100644 index 0000000000..2c04230b69 --- /dev/null +++ b/mobile/android/app/src/main/res/values-v31/styles.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/mobile/android/app/src/main/res/values/colors.xml b/mobile/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000000..c5d5899fdf --- /dev/null +++ b/mobile/android/app/src/main/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/mobile/android/app/src/main/res/values/styles.xml b/mobile/android/app/src/main/res/values/styles.xml index d460d1e921..0d15186673 100644 --- a/mobile/android/app/src/main/res/values/styles.xml +++ b/mobile/android/app/src/main/res/values/styles.xml @@ -5,6 +5,9 @@ @drawable/launch_background + false + false + shortEdges