我似乎无法摆脱 GitHub 操作上的这个快速通道问题:“您的 Ruby 版本是 3.0.2,但您的 Gemfile 指定为 2.7.7”

问题描述 投票:0回答:1

我一直在以几乎正常的方式构建我的移动管道,包括 react-native 和 flutter。我正在尝试建立这第一次快速通道管道,到目前为止它有点粗糙。这是一个包含 android 和 iOS 文件夹的 react-native 项目。我正在关注这个博客https://blog.logrocket.com/fastlane-build-test-ship-react-native-apps/所以我的设置是相似的。只是我正在做一个 firebase 分配通道。在 GitHub 上,

actions/setup-ruby@v1
已被
ruby/setup-ruby@v1
取代。

构建总是失败并显示以下内容,即使像这样的设置:ruby --version 仍然显示

2.7.7

/opt/hostedtoolcache/Ruby/2.7.7/x64/lib/ruby/gems/2.7.0/gems/bundler-2.2.27/lib/bundler/definition.rb:441:in `validate_ruby!': Your Ruby version is 3.0.2, but your Gemfile specified 2.7.7 

在过去的几个小时里,我一直在抓挠我的头发,想知道我可能做错了什么。以下是 GitHub 操作

name: Android developer build

on: 
  push:
    branches:
      - feat/splitting-dev-from-uat-builds
      # - develop*
      # - feat/*

jobs:
  android-build:
    name: Android Build
    runs-on: ubuntu-latest
    environment: dev
    steps:
      - name: Checkout 
        uses: actions/checkout@v2

      - name: Setup JDK
        uses: actions/setup-java@v1
        with:
          java-version: 8

      - name: Install npm dependencies
        run: |
          yarn install
      
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: '2.7'

      - name: Checking Ruby Component versions
        run: |
          ruby --version
          # gem install bundler
          # gem install fastlane
  
      # # Install the Firebase app distribution plugin with fastlane
      # - name: Install Firebase app distribution plugin
      #   run: bundle exec fastlane add_plugin firebase_app_distribution

      # Create a keystore file out of it's base64 string version from secrets
      - name: Recreate android key store file
        id: write_keysotre_file
        uses: timheuer/[email protected]
        with:
          fileName: ${{ vars.DEV_ANDROID_KEYSTORE_NAME }}
          fileDir: ${{ vars.DEV_ANDROID_KEYSTORE_FOLDER_PATH }}
          encodedString: ${{ secrets.DEV_ANDROID_KEYSTORE_BASE64_FILE }}

      - name: distribute to firebase
        run: bundle exec fastlane android alpha
        env:
          FIREBASE_CLI_TOKEN: ${{ secrets.FIREBASE_CLI_TOKEN }}
          FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }}
          ANDROID_KEYSTORE_FILE: ${{ vars.DEV_ANDROID_KEYSTORE_FOLDER_PATH }}/${{ vars.DEV_ANDROID_KEYSTORE_NAME }}
          ANDROID_KEYSTORE_PASSWORD: ${{ secrets.DEV_ANDROID_KEYSTORE_PASSWORD }}
          ANDROID_KEYSTORE_KEY_ALIAS: ${{ secrets.DEV_ANDROID_KEYSTORE_KEY_ALIAS }}
          FIREBASE_DIST_GROUP: dev-android

主要的 Fastfile 如下所示

platform :android do
desc "This is a dev release, we will call it alpha"

    lane :alpha do
        increment_version_code(app_project_dir:'./android/app')
        increment_version_name(app_project_dir: './android/app', bump_type: 'patch')
        gradle(task: 'clean',project_dir: './android')
        gradle(task: 'assemble', bundle_type: 'Release', project_dir: './android', properties:{
            "android.injected.signing.store.file" => ENV['ANDROID_KEYSTORE_FILE'],
            "android.injected.signing.store.password" => ENV['ANDROID_KEYSTORE_PASSWORD'],
            "android.injected.signing.key.alias" => ENV['ANDROID_KEYSTORE_KEY_ALIAS']   
    })
        output_path = "./android/app/build/outputs/apk/"

        firebase_app_distribution(
            app: ENV['FIREBASE_APP_ID'],
            firebase_cli_token: ENV['FIREBASE_CLI_TOKEN'],
            groups: ENV['FIREBASE_DIST_GROUP'],
            release_notes: "Git commit: #{last_git_commit[:abbreviated_commit_hash]}",
        )
    end
end
ruby github-actions fastlane firebase-app-distribution
1个回答
0
投票

如果你不想深入研究,你可以尝试在你的操作文件或你的 .ruby-version 文件和 Gemfile 中将 ruby 版本更改为 3.0.2

© www.soinside.com 2019 - 2024. All rights reserved.