mirror of
https://github.com/bitwarden/android.git
synced 2026-05-10 16:45:43 -05:00
Compare commits
16 Commits
v2026.4.1-
...
BRE-1305/p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4607dad9c5 | ||
|
|
759e459165 | ||
|
|
3952bff558 | ||
|
|
132263a093 | ||
|
|
6ce65db380 | ||
|
|
d14f0c4b34 | ||
|
|
8542cb81c7 | ||
|
|
46b7e07b6c | ||
|
|
655a33f5b7 | ||
|
|
66c355db35 | ||
|
|
6bb68d7f3e | ||
|
|
2a014d76f3 | ||
|
|
05a026cd23 | ||
|
|
858bdebb6c | ||
|
|
f0d3389688 | ||
|
|
9736d8532e |
24
.github/workflows/publish-store.yml
vendored
24
.github/workflows/publish-store.yml
vendored
@@ -37,6 +37,7 @@ on:
|
||||
type: choice
|
||||
options:
|
||||
- internal
|
||||
- qa
|
||||
- Fastlane Automation Source
|
||||
required: true
|
||||
default: "internal"
|
||||
@@ -44,8 +45,8 @@ on:
|
||||
description: "Track to promote to."
|
||||
type: choice
|
||||
options:
|
||||
- production
|
||||
- Fastlane Automation Target
|
||||
- Unused
|
||||
- Unused2
|
||||
required: true
|
||||
dry-run:
|
||||
description: "Dry-Run, Run the workflow without publishing to the store"
|
||||
@@ -153,11 +154,6 @@ jobs:
|
||||
|
||||
decimal=$(echo "scale=2; ${ROLLOUT_PERCENTAGE/\%/} / 100" | bc)
|
||||
|
||||
bundle exec fastlane updateReleaseNotes \
|
||||
releaseNotes:"$RELEASE_NOTES" \
|
||||
versionCode:"$VERSION_CODE" \
|
||||
packageName:"$PACKAGE_NAME"
|
||||
|
||||
bundle exec fastlane promoteToProduction \
|
||||
versionCode:"$VERSION_CODE" \
|
||||
versionName:"$VERSION_NAME" \
|
||||
@@ -166,17 +162,3 @@ jobs:
|
||||
releaseNotes:"$RELEASE_NOTES" \
|
||||
track:"$TRACK_FROM" \
|
||||
trackPromoteTo:"$TRACK_TARGET"
|
||||
|
||||
- name: Enable Publish Github Release Workflow
|
||||
env:
|
||||
PRODUCT: ${{ inputs.product }}
|
||||
run: |
|
||||
if ${{ inputs.dry-run }} ; then
|
||||
gh workflow view publish-github-release-bwpm.yml
|
||||
exit 0
|
||||
fi
|
||||
if [ "$PRODUCT" = "Password Manager" ]; then
|
||||
gh workflow enable publish-github-release-bwpm.yml
|
||||
elif [ "$PRODUCT" = "Authenticator" ]; then
|
||||
gh workflow enable publish-github-release-bwa.yml
|
||||
fi
|
||||
|
||||
@@ -20,79 +20,168 @@ module Supply
|
||||
|
||||
def custom_promote_track
|
||||
UI.message("Using custom promotion logic")
|
||||
track_from = client.tracks(Supply.config[:track]).first
|
||||
unless track_from
|
||||
UI.user_error!("Cannot promote from track '#{Supply.config[:track]}' - track doesn't exist")
|
||||
# track_from = client.tracks(Supply.config[:track]).first
|
||||
# unless track_from
|
||||
# UI.user_error!("Cannot promote from track '#{Supply.config[:track]}' - track doesn't exist")
|
||||
# end
|
||||
|
||||
# releases = track_from.releases
|
||||
# UI.message("Total releases in track: #{releases.length}")
|
||||
# if releases.length == 1
|
||||
# release = releases.first
|
||||
# UI.message("One release found: name[#{release.name}] status[#{release.status}] code[#{release.version_codes}]")
|
||||
# end
|
||||
|
||||
# version_code = Supply.config[:version_code].to_s
|
||||
# if !Supply.config[:skip_release_verification]
|
||||
# if version_code != ""
|
||||
# releases = releases.select do |release|
|
||||
# release.version_codes.include?(version_code)
|
||||
# end
|
||||
# else
|
||||
# releases = releases.select do |release|
|
||||
# release.status == Supply.config[:release_status]
|
||||
# end
|
||||
# end
|
||||
|
||||
# if releases.size == 0
|
||||
# if version_code != ""
|
||||
# UI.user_error!("Cannot find release with version code '#{version_code}' to promote in track '#{Supply.config[:track]}'")
|
||||
# else
|
||||
# UI.user_error!("Track '#{Supply.config[:track]}' doesn't have any releases")
|
||||
# end
|
||||
# elsif releases.size > 1
|
||||
# UI.user_error!("Track '#{Supply.config[:track]}' has more than one release - use :version_code to filter the release to promote")
|
||||
# end
|
||||
# else
|
||||
# UI.message("Skipping release verification as per configuration.")
|
||||
# if version_code == ""
|
||||
# UI.user_error!("Must provide a version code when release verification is skipped.")
|
||||
# end
|
||||
# if Supply.config[:version_name].nil?
|
||||
# UI.user_error!("To force promote a :version_code, it is mandatory to enter the :version_name")
|
||||
# end
|
||||
# end
|
||||
# # release = AndroidPublisher::TrackRelease.new(
|
||||
# # name: Supply.config[:version_name],
|
||||
# # version_codes: [version_code],
|
||||
# # status: Supply.config[:track_promote_release_status] || Supply::ReleaseStatus::COMPLETED
|
||||
# # )
|
||||
|
||||
# # filter only releases that contain the target version code
|
||||
# releases = releases.select do |release|
|
||||
# release.version_codes == [version_code]
|
||||
# end
|
||||
|
||||
# if releases.length < 1
|
||||
# UI.user_error!("No releases match version code #{version_code}.")
|
||||
# end
|
||||
|
||||
# if releases.length > 1
|
||||
# UI.user_error!("Multiple releases match version code #{version_code}.")
|
||||
# else
|
||||
# release = releases.first
|
||||
# end
|
||||
|
||||
# UI.message("Release info: name[#{release.name}] status[#{release.status}] code[#{release.version_codes}]")
|
||||
|
||||
# # releases = releases.select do |release|
|
||||
# # release.name == Supply.config[:version_name] &&
|
||||
# # release.version_codes == [version_code] &&
|
||||
# # release.status == 'completed'
|
||||
# # end
|
||||
|
||||
# release = releases.first unless Supply.config[:skip_release_verification]
|
||||
# track_to = client.tracks(Supply.config[:track_promote_to]).first || AndroidPublisher::Track.new(
|
||||
# track: Supply.config[:track_promote_to],
|
||||
# releases: []
|
||||
# )
|
||||
|
||||
|
||||
|
||||
# UI.message("Promoting release with version: #{release.name} (#{release.version_codes.first} Track: #{Supply.config[:track_promote_to]})")
|
||||
|
||||
# if track_to
|
||||
# # Its okay to set releases to an array containing the newest release
|
||||
# # Google Play will keep previous releases there this release is a partial rollout
|
||||
# track_to.releases = [release]
|
||||
# else
|
||||
# track_to = AndroidPublisher::Track.new(
|
||||
# track: Supply.config[:track_promote_to],
|
||||
# releases: [release]
|
||||
# )
|
||||
# end
|
||||
|
||||
# get version code
|
||||
#version_code = Supply.config[:version_code].to_s
|
||||
version_code = '20274'
|
||||
bundles = client.list_edit_bundles
|
||||
bundles.bundles.each do |bundle|
|
||||
UI.message("Bundle version code: #{bundle.version_code}")
|
||||
end
|
||||
|
||||
releases = track_from.releases
|
||||
|
||||
version_code = Supply.config[:version_code].to_s
|
||||
if !Supply.config[:skip_release_verification]
|
||||
if version_code != ""
|
||||
releases = releases.select do |release|
|
||||
release.version_codes.include?(version_code)
|
||||
end
|
||||
else
|
||||
releases = releases.select do |release|
|
||||
release.status == Supply.config[:release_status]
|
||||
end
|
||||
end
|
||||
|
||||
if releases.size == 0
|
||||
if version_code != ""
|
||||
UI.user_error!("Cannot find release with version code '#{version_code}' to promote in track '#{Supply.config[:track]}'")
|
||||
else
|
||||
UI.user_error!("Track '#{Supply.config[:track]}' doesn't have any releases")
|
||||
end
|
||||
elsif releases.size > 1
|
||||
UI.user_error!("Track '#{Supply.config[:track]}' has more than one release - use :version_code to filter the release to promote")
|
||||
end
|
||||
target_bundle = bundles.bundles.find { |b| b.version_code.to_s == version_code }
|
||||
UI.message("Total bundles:#{bundles.bundles.length}")
|
||||
if target_bundle
|
||||
UI.message("Found bundle with version code #{version_code}")
|
||||
else
|
||||
UI.message("Skipping release verification as per configuration.")
|
||||
if version_code == ""
|
||||
UI.user_error!("Must provide a version code when release verification is skipped.")
|
||||
end
|
||||
if Supply.config[:version_name].nil?
|
||||
UI.user_error!("To force promote a :version_code, it is mandatory to enter the :version_name")
|
||||
end
|
||||
release = AndroidPublisher::TrackRelease.new(
|
||||
name: Supply.config[:version_name],
|
||||
version_codes: [version_code],
|
||||
status: Supply.config[:track_promote_release_status] || Supply::ReleaseStatus::COMPLETED
|
||||
)
|
||||
UI.message("Bundle with version code #{version_code} not found in available bundles")
|
||||
end
|
||||
|
||||
release = releases.first unless Supply.config[:skip_release_verification]
|
||||
track_to = client.tracks(Supply.config[:track_promote_to]).first || AndroidPublisher::Track.new(
|
||||
track: Supply.config[:track_promote_to],
|
||||
releases: []
|
||||
|
||||
# build release object
|
||||
release = AndroidPublisher::TrackRelease.new(
|
||||
name: Supply.config[:version_name],
|
||||
version_codes: [version_code],
|
||||
status: 'completed'
|
||||
)
|
||||
|
||||
rollout = (Supply.config[:rollout] || 0).to_f
|
||||
if rollout > 0 && rollout < 1
|
||||
release.status = Supply::ReleaseStatus::IN_PROGRESS
|
||||
release.user_fraction = rollout
|
||||
else
|
||||
release.status = Supply.config[:track_promote_release_status]
|
||||
release.user_fraction = nil
|
||||
end
|
||||
# # set release attributes based on the rollout values
|
||||
# rollout = (Supply.config[:rollout] || 0).to_f
|
||||
# if rollout > 0 && rollout < 1
|
||||
# release.status = Supply::ReleaseStatus::IN_PROGRESS
|
||||
# release.user_fraction = rollout
|
||||
# else
|
||||
# release.status = Supply.config[:track_promote_release_status] || Supply::ReleaseStatus::COMPLETED
|
||||
# release.user_fraction = nil
|
||||
# end
|
||||
|
||||
UI.message("Promoting release with version: #{release.name} (#{release.version_codes.first})")
|
||||
|
||||
if track_to
|
||||
# Its okay to set releases to an array containing the newest release
|
||||
# Google Play will keep previous releases there this release is a partial rollout
|
||||
track_to.releases = [release]
|
||||
else
|
||||
track_to = AndroidPublisher::Track.new(
|
||||
track: Supply.config[:track_promote_to],
|
||||
releases: [release]
|
||||
)
|
||||
end
|
||||
|
||||
client.update_track(Supply.config[:track_promote_to], track_to)
|
||||
# build track object, including the release
|
||||
track = AndroidPublisher::Track.new(
|
||||
track: Supply.config[:track_promote_to],
|
||||
releases: [release]
|
||||
)
|
||||
|
||||
# update the track in the Play store
|
||||
client.update_track(Supply.config[:track_promote_to], track)
|
||||
UI.message("confirmed that update_track was reached: #{Supply.config[:track_promote_to]} #{release}")
|
||||
end
|
||||
end
|
||||
end
|
||||
class Client
|
||||
def list_edit_bundles
|
||||
ensure_active_edit!
|
||||
|
||||
call_google_api do
|
||||
client.list_edit_bundles(
|
||||
current_package_name,
|
||||
current_edit.id
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def update_track(track_name, track_object)
|
||||
UI.message("Using custom `update_track` method.")
|
||||
ensure_active_edit!
|
||||
|
||||
UI.message("name:#{track_name} object:#{track_object} package:#{current_package_name}")
|
||||
call_google_api do
|
||||
client.update_edit_track(
|
||||
current_package_name,
|
||||
current_edit.id,
|
||||
track_name,
|
||||
track_object
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user