Интеграция Fastlane Github — личность автора неизвестна

Я создаю конвейер для распространения моей сборки QA через тестер приложений, используя действия fastlane и git hub.

В рамках конвейера я также улучшаю код версии и создаю ветку. Задание Fastlane отлично работает при локальном запуске, например. fastlane deploy_firebase_test_build в моем терминале. Однако, когда я запускаю это задание через Github Actions, я получаю следующую ошибку.

FastlaneCore::Interface::FastlaneShellError: [!] Exit status of command 'git commit -am 'Version bump to 106'' was 128 instead of 0.
Author identity unknown

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

Я попытался установить конфигурацию в моем файле .yml, но в этот момент я получаю сообщение об ошибке.

Fastfile

default_platform(:android)

platform :android do

    before_all do
        ENV["FIREBASE_LOGIN_CREDENTIALS"] = "fastlane/sandbox_firebase_auth.json"
        ENV["FIREBASE_APP_ID"] = "*******************************"
    end

    #Firebase Distribution
    desc "Submit test build to App Tester"
    lane :deploy_firebase_test_build do |options|

       #Increment version code
       increment_version_code(gradle_file_path: "./app/build.gradle")

       #Build and assemble sandbox debug
       gradle(task: "clean")
       gradle(task: "assemble", flavor: "sandbox", build_type: "debug")


       #Fetch version code from gradle
       new_version = get_version_name(
            gradle_file_path:"./app/build.gradle",
            ext_constant_name:"versionCode"
        )

        # find apk path
         output_path = "./app/build/outputs/apk/sandbox/debug/"
         output_json_path = output_path + "output-metadata.json"
         build_output = load_json(json_path: output_json_path)
         elements = build_output["elements"][0]
         apk_path = output_path + elements["outputFile"]

            firebase_app_distribution(
                    app: ENV["FIREBASE_APP_ID"],
                    apk_path: apk_path,
                    release_notes_file: "sandboxchangelog.txt",                
                    groups_file: "fastlane/groups.txt",
                    service_credentials_file: ENV["FIREBASE_LOGIN_CREDENTIALS"]
              )

                #Checkout new branch with new version code
                sh("git checkout -b 'JIRA-000-Version-Bump-#{new_version}'")

                #Create commit with new version code
                sh "git commit -am 'Version bump to #{new_version}'"

                #Push commit
                push_to_git_remote
           end
         end

.YML File

name: Build and Distribute - Manual

on:
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - run: git config --global user.name "*********"
    - run: git config --global user.email "**************"

    - name: Set up Ruby Environment
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: '2.7.2'
        bundler-cache: true

    - name: Install bundle
      run: |
        bundle config path vendor/bundle
        bundle install --jobs 4 --retry 3
      
    - name: Create Firebase Service Credentials file
      run: |
        echo "$FIREBASE_CREDENTIALS" > firebase_credentials.json.b64
        base64 -d -i firebase_credentials.json.b64 > firebase_credentials.json
      env:
        FIREBASE_CREDENTIALS: ${{ secrets.FIREBASE_SANDBOX_CREDENTIALS }}
      
    - name: Distribute Sanbox via Apptester
      run: bundle exec fastlane deploy_firebase_test_build
      env:
        FIREBASE_APP_ID: ${{ secrets.SANDBOX_APP_ID }}
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Я совершенно новичок в действиях fastlane и github. Может ли кто-нибудь помочь мне здесь и направить меня в правильном направлении, или кто-нибудь может сказать мне, что мне нужно сделать, чтобы решить эту проблему?

заранее спасибо

Вы пытались опустить --global?

Azeem 15.04.2023 08:46

Кстати, вы работаете отдельно bundle install, тогда как настройка bundler-cache: true делает всю работу автоматически за вас. См. github.com/ruby/setup-ruby#bundler. Похоже, вы можете просто пропустить шаг «Установить комплект».

Azeem 15.04.2023 08:53
0
2
111
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны разместить предложенные строки конфигурации git непосредственно перед командой, которая выдала сообщение в вашей удаленной сборке, то есть до sh "git commit -am 'Version bump to #{new_version}'" и после #Create commit with new version code. Иначе легко вырваться из контекста:

                #Checkout new branch with new version code
                sh("git checkout -b 'JIRA-000-Version-Bump-#{new_version}'")

                #Create commit with new version code
                sh "git config --global user.email '[email protected]'"
                sh "git config --global user.name 'Your Name'"
                sh "git commit -am 'Version bump to #{new_version}'"

                #Push commit
                push_to_git_remote

Это также имеет то преимущество, что вы управляете этими свойствами кода новой версии рядом с его сообщением в Fastfile, и вы можете легко связать их как свойства сборки (не показано в примере, поскольку это не главное, и должно быть относительно ясно, учитывая Fastfile в вопросе, в противном случае комментарий).

Другие вопросы по теме