Mik*_*ike 11 build github github-actions
我正在创建一个 Github 操作工作流程。
有一个 phing 构建文件,可根据产品变体创建多个 zip。这是通过矩阵完成的。
在构建产品之前,需要构建一个 JS 文件。这是通过汇总构建文件完成的。
一切正常,但 JS 构建只需要完成一次,而不是每个矩阵组合都需要完成。
我不知道该怎么做。也许在开始时运行一个单独的工作流程,但是如何将完成的 JS 文件推送到下一个工作流程中?或者也许一种工作流程就可以了?
name: Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
env:
VERSION: 1.0.1
strategy:
matrix:
edition: ["product1", "product2", "product3"]
limits: [100, 200, 300]
exclude:
- edition: product1
limits: 100
- edition: product2
limits: 100
- edition: product1
limits: 200
- edition: product2
limits: 200
steps:
- uses: actions/checkout@v2
- name: Build JS
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-node-
${{ runner.OS }}-
- run: npm ci
- run: npm run build # builds main.js
- name: Phing Build
uses: phingofficial/phing-github-action@main
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
buildfile: build/phing/build.xml
targets: main
user-properties: editions=${{ matrix.edition }} limits=${{ matrix.limits }}
version: 3.0.0-alpha4
- name: Archive code
uses: actions/upload-artifact@v2
with:
name: file-${{ matrix.edition }}${{ matrix.limits }}-v${{ env.VERSION }}
path: build/${{ matrix.edition }}/zip/
retention-days: 1
Run Code Online (Sandbox Code Playgroud)
您可以在单独的作业(让我们将其命名为 )中执行创建 JS 文件,然后使用关键字prepare
在具有矩阵定义 ( ) 的作业中引用该作业。跨作业共享文件是 GitHub 非常明确的一点:并非每个作业都需要前一个作业的所有文件,因此您需要自己上传和下载该文件。build
needs
设置示例:
jobs:
prepare:
runs-on: ubuntu-latest
steps:
...
# upload the file here for later use
- uses: actions/upload-artifact
build:
needs: prepare
strategy:
matrix:
edition: ["product1", "product2", "product3"]
steps:
# download the file here so you can use it
- uses: actions/download-artifact
Run Code Online (Sandbox Code Playgroud)
请参阅此处needs
有关关键字的文档。
归档时间: |
|
查看次数: |
7205 次 |
最近记录: |