GitHub Action工作流中能否将多个run命令归类到同一步骤名下?
结论
你设想的同一个步骤下声明多个run字段的写法无法实现需求:GitHub Actions解析YAML配置时,同个映射下的重复key会被覆盖,仅最后一个run的命令会被执行。
正确的优化方案
你可以使用YAML的多行字符串语法(|保留换行符),在单个run字段下拆分多条命令,可读性和你预期的写法一致,且执行逻辑和原来用&&拼接的效果完全相同(某一步执行失败就会终止后续命令)。
优化后的完整job配置示例
flutter_test: name: Run flutter test and analyze runs-on: ubuntu-latest steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: java-version: "12.x" - uses: subosito/flutter-action@v1.5.3 with: channel: "stable" - name: Testing and analyzing paginablelistviewbuilder_example run: | cd example/paginablelistviewbuilder_example/ flutter pub get flutter analyze flutter test - name: Testing and analyzing paginablesliverchildbuilderdelegate_example run: | cd example/paginablesliverchildbuilderdelegate_example/ flutter pub get flutter analyze flutter test - name: Testing and analyzing paginable run: | flutter pub get flutter analyze flutter test --coverage - name: Upload coverage to Codecov uses: codecov/codecov-action@v2 with: files: coverage/lcov.info
额外优化建议
你还可以搭配步骤的working-directory参数指定命令执行的工作目录,省去单独写cd命令的步骤,逻辑更清晰:
- name: Testing and analyzing paginablelistviewbuilder_example working-directory: example/paginablelistviewbuilder_example/ run: | flutter pub get flutter analyze flutter test
内容的提问来源于stack exchange,提问作者The Chinky Sight
相关产品推荐
相关产品推荐

