我在一个单体库中使用CI的工作流程,这个工作流程会构建两个项目。这些工作正常运行,但是我想知道是否有一种方法可以从workflow.yml文件中删除设置runner的重复部分。我把它们拆分成并行运行,因为它们彼此不依赖且完成速度更快。等待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
在这里,您可以看到这些工作几乎有相同的流程,只是不同应用程序本身的构建。我想知道是否有一种方法可以将工作中的重复块提取出来,并创建一种只需编写一次并在两个工作中重复使用的方式。
##[error]在'/Users/runner/runners/2.163.1/work/-client/-client/.github/actions/build-setup-action.yml'下找不到'action.yml'或'Dockerfile'。您是否忘记在运行本地操作之前运行actions/checkout?
- Brad Martin