如何为仓库子目录下的Flutter项目配置GitHub Actions工作流
Flutter项目在仓库子目录时的GitHub Actions配置方法
两种配置方式按需选择即可:
- 单步骤指定工作目录:适合仅部分步骤需要在子目录执行的场景
- 全局配置Job默认工作目录:适合所有构建相关步骤都在子目录执行的场景,配置更简洁
方式1:单步骤指定工作目录
Flutter SDK安装步骤不需要指定子目录,仅需要在所有执行Flutter相关命令的run步骤中,添加working-directory参数,参数值填写Flutter项目相对于仓库根目录的相对路径即可。
示例配置(假设Flutter项目存放在仓库根目录下的my_flutter_app文件夹):
# 先拉取仓库代码,不要遗漏该步骤 - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: channel: 'stable' - run: flutter pub get working-directory: ./my_flutter_app - run: flutter test working-directory: ./my_flutter_app - run: flutter build appbundle working-directory: ./my_flutter_app
方式2:全局配置Job默认工作目录
如果整个构建流程的所有命令都需要在Flutter项目子目录下执行,可以直接在Job层级配置默认工作目录,后续所有run步骤会自动在该目录下执行,无需重复给每个步骤写路径。
示例配置:
jobs: flutter-build: runs-on: ubuntu-latest # 全局配置该Job下所有run步骤的默认工作目录 defaults: run: working-directory: ./my_flutter_app # 替换为你的Flutter项目实际子目录路径 steps: - uses: actions/checkout@v3 - uses: subosito/flutter-action@v2 with: channel: 'stable' - run: flutter pub get - run: flutter test - run: flutter build appbundle
注意:如果你的Flutter项目存在多层子目录,比如路径为
apps/client/mobile_flutter,直接将上述配置中的路径替换为对应相对路径即可,路径基准为仓库根目录。
内容的提问来源于stack exchange,提问作者Anthony Aniobi
相关产品推荐
相关产品推荐

