【发布时间】:2020-05-02 13:41:58
【问题描述】:
我在 monorepo 中有一个 CI 工作流,对于这个工作流,最终构建了两个项目。作业运行良好,但是,我想知道是否有办法通过设置作业的运行器来删除此 workflow.yml 文件中的重复项。我将它们分开,以便它们并行运行,因为它们不相互依赖并且可以更快地完成。等待 CI 完成时,5 分钟与 10 分钟以上的时间差很大。
jobs:
job1:
name: PT.W Build
runs-on: macos-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v1
- name: Setup SSH-Agent
uses: webfactory/ssh-agent@v0.2.0
with:
ssh-private-key: |
${{ secrets.SSH_PRIVATE_KEY }}
- name: Setup JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Setup Permobil-Client
run: |
echo no | npm i -g nativescript
tns usage-reporting disable
tns error-reporting disable
npm run setup.all
- name: Build PT.W Android
run: |
cd apps/wear/pushtracker
tns build android --env.uglify
job2:
name: SD.W Build
runs-on: macos-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v1
- name: Setup SSH-Agent
uses: webfactory/ssh-agent@v0.2.0
with:
ssh-private-key: |
${{ secrets.SSH_PRIVATE_KEY }}
- name: Setup JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Setup Permobil-Client
run: |
echo no | npm i -g nativescript
tns usage-reporting disable
tns error-reporting disable
npm run setup.all
- name: Build SD.W Android
run: |
cd apps/wear/smartdrive
tns build android --env.uglify
您可以在此处看到这些作业的流程几乎相同,只是构建不同的应用程序本身。我想知道是否有一种方法可以在作业中获取重复块并创建一种只编写一次并在两个作业中重用它的方法。
【问题讨论】:
-
我还没有确定正确的语法来实现它。但是,我正在尝试创建一个本地操作,该操作在我的主工作流程中运行重复的步骤。参考:github.community/t5/GitHub-Actions/… 这似乎是解决问题的方法,但目前工作失败并且还没有找到正确的语法来设置路径。
-
当前错误:``` ##[error]在'/Users/runner/runners/2.163.1/work/-client/下找不到'action.yml'或'Dockerfile' -client/.github/actions/build-setup-action.yml'。您是否忘记在运行本地操作之前运行操作/结帐? ```
标签: github continuous-integration yaml github-actions