问题描述
我正在尝试使用 Github Actions 和 Fastlane 为 Flutter 实现 CI/CD 工作流程。但是,当车道正在执行时会抛出以下错误:
我在 android 文件夹中创建了 Fastlane 文件夹。喜欢图片
这是我的Fastfile
的内容:
update_fastlane
default_platform(:android)
platform :android do
desc "Deploy to closed beta track"
lane :closed_beta do
begin
gradle(task: "clean")
gradle(
task: "bundle",build_type: 'Release'
)
upload_to_play_store(
track: 'Closed beta',aab: '../build/app/outputs/bundle/release/app-release.aab',skip_upload_Metadata: true,skip_upload_images: true,skip_upload_screenshots: true,release_status: "draft",version_code: Flutter_version()["version_code"],)
end
end
end
我的 GitHub 操作工作流程允许进行构建和部署,如下所示。 Run Fastlane
步骤是错误点
name: Continuous Delivery to Play Store
on:
push:
branches:
- "v*"
jobs:
# Continuous integration
build_android:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 12.x
- name: Decrypt Android keys
run: sh ./.github/scripts/decrypt_android_keys.sh
env:
ANDROID_KEYS_SECRET_PAsspHRASE: ${{ secrets.ANDROID_KEYS_SECRET_PAsspHRASE }}
- name: Setup Flutter
uses: subosito/Flutter-action@v1
with:
Flutter-version: 1.22.5
- name: Install Flutter dependencies
run: Flutter pub get
# Add build runner commands here if you have any
- name: Format files
run: Flutter format --set-exit-if-changed .
- name: Analyze files
run: Flutter analyze .
- name: Run the tests
run: Flutter test
- name: Build the APK
run: Flutter build apk
- name: Upload artifact to Github
uses: actions/upload-artifact@v1
with:
name: release-apk
path: build/app/outputs/apk/release/app-release.apk
# Continuous delivery
deploy_android:
runs-on: ubuntu-latest
needs: [build_android]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 12.x
- name: Decrypt Android keys
run: sh ./.github/scripts/decrypt_android_keys.sh
env:
ANDROID_KEYS_SECRET_PAsspHRASE: ${{ secrets.ANDROID_KEYS_SECRET_PAsspHRASE }}
- name: Setup Flutter
uses: subosito/Flutter-action@v1
with:
Flutter-version: 1.22.5
- name: Install Flutter dependencies
run: Flutter pub get
- name: Build app bundle
run: Flutter build appbundle
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
- name: Check file existence
run: echo find . -name "gradlew"
- uses: maierj/fastlane-action@v2.0.0
with:
lane: closed_beta
subdirectory: android
欢迎提出任何建议。谢谢!
解决方法
我有同样的问题,我发现 gradlew 被排除在你的 flutter 项目的 /android 文件夹内的 .gitignore 中。
当下面在你的本地机器上运行时,它不会运行 Github runner:
gradle(task: "clean")
gradle(
task: "bundle",build_type: 'Release'
)
考虑从 Fastfile 中删除上面的行,因为您已经在 Github 上构建了 在这里代表:
名称:构建 APK
运行:flutter build apk