Android CI / CD с Fastlane и GitHub Actions: команда fastlane не найдена в главной ветке

Я пытаюсь реализовать рабочий процесс CI / CD для своего проекта Android с помощью Github Actions и Fastlane. Я создал рабочий процесс для сборки и APK-файла и загрузил его в Firebase App Distribution. Мой рабочий процесс запускается и выполняется успешно, когда я нажимаю на свою ветку разработки и загружаю файл APK в Firebase App Distribution, как ожидалось.

введите описание изображения здесь

Но тот же рабочий процесс не удался в основной ветке (без каких-либо изменений кода) с ошибкой: bundler: команда не найдена: fastlane

введите описание изображения здесь

Когда я вызываю одно и то же действие fastlane на своем локальном устройстве, оно работает и загружает APK в Firebase App Distribution.

Вот мой переулок:

    lane :beta do |options|

        version = options[:versionChange]
        runUnitTests = options[:runUnitTests]
        gitUserMail = options[:gitUserMail]
        gitUserName = options[:gitUserName]

        # 1- Make version code and name incrementation

        if version.nil? || version == 'patch'
            gradle(task: "doPatchVersionIncrement")
        end

        if version == 'major'
            gradle(task: "doMajorVersionIncrement")
        end

        if version == 'minor'
            gradle(task: "doMinorVersionIncrement")
        end

        gradle(task: "doBuildNumberIncrement")
        gradle(task: "doBuildNumberBetaIncrementValueIncrement")

        # 2- Run unit tests for all variants
        if runUnitTests.nil? && runUnitTests != 'false'
                gradle(task: "clean")
                gradle(task: "test")
        end

        # 3- Build Release APK
                gradle(task: "clean")
                gradle(task: 'assemble', build_type: 'Release')

        # 4- push version bump commit

        properties = property_file_read(file: "app/version.properties")
        versionMajor = properties['VERSION_NAME_MAJOR']
        versionMinor = properties['VERSION_NAME_MINOR']
        versionPatch = properties['VERSION_NAME_PATCH']
        versionCode = properties['VERSION_CODE']
        versionName = "#{versionMajor}.#{versionMinor}.#{versionPatch}"

        if !gitUserMail.nil? && !gitUserMail.empty? && !gitUserName.nil? && !gitUserName.empty?
              sh "git config --global user.email #{gitUserMail}; git config --global user.name #{gitUserName}"
        end

        sh "git add .. ; git commit -m 'Version bump : versionCode = #{versionCode} | versionName = #{versionName}'"
        push_to_git_remote

        # 5- Send APK to Firebase
        firebase_app_distribution(app: "MY_FIREBASE_APP_ID", groups: "qa-team")
  end

Вот мой .yml-файл для GitHub Action:

name: Deploy Release APK to Firebase App Distribution

on:
  push:
    branches:
      - "**"
  pull_request:
    branches:
      - master

  workflow_dispatch:

jobs:
  upload_firebase_app_distribution:
    name: Upload to Release Apk to Firebase App Distribution
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/[email protected]

      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '2.6'
          bundler-cache: true

      - name: Distribute app with ???? App Distribution ????
        run: bundle exec fastlane beta version:patch runUnitTests:false gitUserMail:[email protected] gitUserName:user_name

person cimenmus    schedule 22.02.2021    source источник


Ответы (1)


  1. Обновленная версия Ruby
  2. Установлен Fastlane после Ruby
  3. Добавлена ​​команда android после команды fastlane

Тогда проблема решена. Вот фиксированный рабочий процесс:

name: Deploy Release APK to Firebase App Distribution
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

  workflow_dispatch:

jobs:
  deploy_to_beta:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: '2.7.2'

      - name: Setup Fastlane
        run: bundle install

      - name: Deploy to Firebase
        run: bundle exec fastlane android beta version:patch runUnitTests:false gitUserMail:[email protected] gitUserName:user_name
person cimenmus    schedule 23.02.2021