mirror of
https://github.com/immich-app/immich.git
synced 2026-05-21 15:16:31 -04:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 20c8bbd35f |
@@ -7,7 +7,7 @@ on:
|
||||
required: false
|
||||
type: string
|
||||
environment:
|
||||
description: 'Target environment (development, rc, or production)'
|
||||
description: 'Target environment'
|
||||
required: true
|
||||
default: 'development'
|
||||
type: string
|
||||
@@ -298,12 +298,10 @@ jobs:
|
||||
run: |
|
||||
# Only upload to TestFlight on main branch
|
||||
if [[ "$GITHUB_REF" == "refs/heads/main" ]]; then
|
||||
if [[ "$ENVIRONMENT" == "rc" ]]; then
|
||||
bundle exec fastlane gha_testflight_rc
|
||||
elif [[ "$ENVIRONMENT" == "production" ]]; then
|
||||
bundle exec fastlane gha_release_prod
|
||||
elif [[ "$ENVIRONMENT" == "development" ]]; then
|
||||
if [[ "$ENVIRONMENT" == "development" ]]; then
|
||||
bundle exec fastlane gha_testflight_dev
|
||||
else
|
||||
bundle exec fastlane gha_release_prod
|
||||
fi
|
||||
else
|
||||
# Build only, no TestFlight upload for non-main branches
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
# Release Candidate (RC)
|
||||
|
||||
The Release Candidate channel is an opt-in track for the next Immich version, published roughly one week ahead of the official release. RC builds are labeled `vX.Y.Z-rc.N` and may contain bugs — testers help us catch them before everyone else gets the update.
|
||||
|
||||
## Why participate
|
||||
|
||||
Joining the RC channel lets you preview the next version, surface regressions that are easier to fix before release, and shape the build that lands for everyone. Feedback you give here makes it into the final cut.
|
||||
|
||||
## iOS — Public TestFlight
|
||||
|
||||
1. Install Apple's [TestFlight](https://apps.apple.com/app/testflight/id899247664) app.
|
||||
2. Open the public RC TestFlight link: `<TESTFLIGHT_LINK_PLACEHOLDER>`.
|
||||
3. Tap **Accept**, then **Install**.
|
||||
|
||||
:::info Separate app on your device
|
||||
The RC build is a distinct app — "Immich RC" — that installs alongside your production Immich. Your data is not shared between the two. Sign in to your server in the RC app the same way you would on a fresh install.
|
||||
:::
|
||||
|
||||
## Android — Open Testing
|
||||
|
||||
1. Open the Play Store opt-in link: `<PLAY_STORE_OPT_IN_PLACEHOLDER>`.
|
||||
2. Tap **Become a tester**.
|
||||
|
||||
:::warning RC replaces your production install
|
||||
Android RC builds use the same package name as production Immich, so the Play Store delivers them as updates on top of your existing install. This is a one-way change until you opt out and reinstall — there is no separate "Immich RC" app on Android.
|
||||
:::
|
||||
|
||||
## Server, web, CLI
|
||||
|
||||
RC server images are not part of this initial rollout. For now, if you want to test an RC backend alongside an RC mobile build, build the server from the `vX.Y.Z-rc.N` git tag yourself. We may publish `:rc` Docker tags later.
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
Open a GitHub issue at the [Immich issue tracker](https://github.com/immich-app/immich/issues). Mention that you are on an RC build and include the version string (`vX.Y.Z-rc.N`) so we can correlate reports across testers.
|
||||
|
||||
:::note
|
||||
Test against a non-critical library or a staging instance — not your only copy of family photos. RCs are pre-release software and may have bugs that affect data.
|
||||
:::
|
||||
|
||||
## Leaving the RC channel
|
||||
|
||||
- **iOS**: Open TestFlight → Immich RC → **Stop Testing**. The RC app stays installed until you delete it; deleting it does not affect your production Immich install.
|
||||
- **Android**: Open the Play Store → Immich → scroll to **You're a tester** → leave the program. Then uninstall and reinstall Immich to drop back to the production track.
|
||||
|
||||
## Cadence
|
||||
|
||||
We typically publish one to three RCs in the ~1 week before each minor release. Patch releases usually skip the RC stage and ship straight to production.
|
||||
@@ -5,3 +5,5 @@ The mobile app can be downloaded from the following places:
|
||||
- [Apple App Store](https://apps.apple.com/us/app/immich/id1613945652)
|
||||
- [F-Droid](https://f-droid.org/packages/app.alextran.immich)
|
||||
- [GitHub Releases (apk)](https://github.com/immich-app/immich/releases)
|
||||
|
||||
Want to help test the next release before it ships? Join the [Release Candidate channel](/features/release-candidate).
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
default_platform(:android)
|
||||
|
||||
platform :android do
|
||||
desc "Build and Release Android RC to Open Testing"
|
||||
lane :rc do
|
||||
desc "Build Android and Release Testing"
|
||||
lane :beta do
|
||||
gradle(
|
||||
task: 'bundle',
|
||||
build_type: 'Release',
|
||||
|
||||
@@ -169,37 +169,6 @@ end
|
||||
)
|
||||
end
|
||||
|
||||
desc "iOS RC Build to public TestFlight"
|
||||
lane :gha_testflight_rc do
|
||||
api_key = get_api_key
|
||||
|
||||
sigh(api_key: api_key, app_identifier: DEV_BUNDLE_ID, force: true)
|
||||
main_profile_name = lane_context[SharedValues::SIGH_NAME]
|
||||
|
||||
sigh(api_key: api_key, app_identifier: "#{DEV_BUNDLE_ID}.ShareExtension", force: true)
|
||||
share_profile_name = lane_context[SharedValues::SIGH_NAME]
|
||||
|
||||
sigh(api_key: api_key, app_identifier: "#{DEV_BUNDLE_ID}.Widget", force: true)
|
||||
widget_profile_name = lane_context[SharedValues::SIGH_NAME]
|
||||
|
||||
configure_code_signing(
|
||||
base_bundle_id: DEV_BUNDLE_ID,
|
||||
profile_name_main: main_profile_name,
|
||||
profile_name_share: share_profile_name,
|
||||
profile_name_widget: widget_profile_name
|
||||
)
|
||||
|
||||
build_and_upload(
|
||||
api_key: api_key,
|
||||
base_bundle_id: DEV_BUNDLE_ID,
|
||||
version_number: get_version_from_pubspec.split('-').first,
|
||||
distribute_external: true,
|
||||
profile_name_main: main_profile_name,
|
||||
profile_name_share: share_profile_name,
|
||||
profile_name_widget: widget_profile_name
|
||||
)
|
||||
end
|
||||
|
||||
desc "iOS Release to TestFlight"
|
||||
lane :gha_release_prod do
|
||||
api_key = get_api_key
|
||||
|
||||
Reference in New Issue
Block a user