[BRE-769] Use Fastlane to keep github releases in sync with mobile deploy versions (#5219)

Co-authored-by: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com>
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>
This commit is contained in:
Michał Chęciński
2025-07-16 17:32:21 +02:00
committed by GitHub
parent 8178a61dba
commit b53ca30974
2 changed files with 64 additions and 8 deletions

View File

@@ -1,14 +1,36 @@
name: Publish GitHub Release as newest
name: Publish Password Manager and Authenticator GitHub Release as newest
on:
workflow_dispatch:
schedule:
- cron: '0 3 * * 1-5'
permissions: {}
permissions:
contents: write
id-token: write
actions: read
jobs:
stub:
runs-on: ubuntu-24.04
name: Stub
steps:
- name: Stub
run: echo "This is a stub job to trigger the workflow."
publish-release-password-manager:
name: Publish Password Manager Release
uses: bitwarden/gh-actions/.github/workflows/_publish-mobile-github-release.yml@main
with:
release_name: "Password Manager"
workflow_name: "publish-github-release.yml"
credentials_filename: "play_creds.json"
project_type: android
check_release_command: >
bundle exec fastlane getLatestPlayStoreVersion package_name:com.x8bit.bitwarden track:production
secrets: inherit
publish-release-authenticator:
name: Publish Authenticator Release
uses: bitwarden/gh-actions/.github/workflows/_publish-mobile-github-release.yml@main
with:
release_name: "Authenticator"
workflow_name: "publish-github-release.yml"
credentials_filename: "authenticator_play_store-creds.json"
project_type: android
check_release_command: >
bundle exec fastlane getLatestPlayStoreVersion package_name:com.bitwarden.authenticator track:production
secrets: inherit

View File

@@ -265,6 +265,40 @@ platform :android do
releaseNotes
end
desc "Get latest published version for a given package name and Play Store track"
lane :getLatestPlayStoreVersion do |options|
package_name = options[:package_name]
track = options[:track]
# Hardcoding paths for now, it will simplify transitioning to the new build .env files
case package_name
when "com.x8bit.bitwarden", "com.x8bit.bitwarden.beta"
json_key = "secrets/play_creds.json"
when "com.bitwarden.authenticator"
json_key = "secrets/authenticator_play_store-creds.json"
else
UI.important "Unexpected package name: #{package_name}, using default play store json key"
json_key = "secrets/play_creds.json"
end
release_name = google_play_track_release_names(
package_name: package_name,
track: track,
json_key: json_key,
)
version_code = google_play_track_version_codes(
package_name: package_name,
track: track,
json_key: json_key,
)
latest_version_name = release_name.first
latest_version_number = version_code.first.to_s.strip
UI.message("version_name: #{latest_version_name}")
UI.message("version_number: #{latest_version_number}")
end
# Authenticator
desc "Apply build version information"
fastlane_require "time"