Android CI / CD с Github Actions и Fastlane - PullRequest
0 голосов
/ 20 марта 2020

Я использую fastlane для автоматизации моего развертывания в игровом магазине. Вот пример альфа-полосы:

lane :alpha do    
    gradle(task: 'clean')
    gradle(
      task: 'assemble',
      build_type: 'Release',
      properties: {
        "android.injected.signing.store.file" => ENV["ANDROID_KEYSTORE"],
        "android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
        "android.injected.signing.key.alias" => ENV["ANDROID_KEY_ALIAS"],
        "android.injected.signing.key.password" => ENV["ANDROID_KEY_PASSWORD"],
      }
    )
    upload_to_play_store(track: 'alpha')
end

Я хочу автоматизировать это развертывание с помощью действий Github. Всякий раз, когда происходит фиксация staging, запускайте fastlane alpha. Однако я сталкиваюсь с проблемой версий. Мне нужно поднять versionCode в моем файле build.gradle. Я делал это вручную перед запуском fastlane alpha.

Я хочу устранить необходимость вручную увеличивать это значение перед фиксацией, как мне этого добиться?

Я видел этот плагин fastlane для увеличения кода версии. Если я, например, сделаю коммит один раз, когда versionCode равен 1, то мой рабочий процесс автоматически увеличит значение versionCode до 2. При повторном коммите versionCode все равно будет 1, а Github увеличит его до 2. Тем не менее, игровому магазину требуется versionCode 3. Идеальным решением является запрос Github из Google Play Store текущего versionCode моего приложения и предоставление этого + 1 в fastlane. Я искал способ сделать это, но не могу найти решение.

1 Ответ

1 голос
/ 20 марта 2020

Вы пробовали это: https://docs.fastlane.tools/actions/google_play_track_version_codes/?

    g = google_play_track_version_codes
    gb = google_play_track_version_codes(track: 'beta')
    ga = google_play_track_version_codes(track: 'alpha')
    max_value = [g[0].to_i, gb[0].to_i, ga[0].to_i].max
    version_updated = max_value + 1
    increment_version_code(app_project_dir: "./app", version_code: version_updated.to_i)

В основном я беру все коды версий Google Play и увеличиваю +1 до максимального, а затем использую плагин управления версиями для обновления на build.gradle

...