diff --git a/.github/workflows/publish-github-release.yml b/.github/workflows/publish-github-release.yml index e752d4921a..e6192e60e4 100644 --- a/.github/workflows/publish-github-release.yml +++ b/.github/workflows/publish-github-release.yml @@ -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 diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 3b708483df..454b806547 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -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"