Den*_*aud 5 continuous-integration github-actions
我想避免在不同的工作中重复策略矩阵:
\njobs:\n build-sdk:\n\n runs-on: macOS-latest\n strategy:\n fail-fast: false\n matrix:\n qt-version: ['5.15.1']\n ios-deployment-architecture: ['arm64', 'x86_64']\n ios-deployment-target: '12.0'\n\n\n steps:\n \xe2\x80\xa6\n\n create-release:\n needs: build-sdk\n runs-on: macOS-latest\n steps:\n \xe2\x80\xa6\n\n\n publish-sdk:\n needs: [build-sdk, create-release]\n runs-on: macOS-latest\n strategy:\n fail-fast: false\n matrix: ?????\n\n steps:\n \xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n这可能吗(无需创建作业来将矩阵创建为 JSON 本身)?
\n有一个操作允许将多个资产从矩阵构建上传到同一版本,该矩阵构建在推送到标签时触发。有人提出了有关此特定用例的问题,该操作的作者回复为
上传与同一标签关联的 GitHub 版本的资产,因此只要在针对同一标签运行的工作流程中运行此操作,所有资产都应添加到同一 GitHub 版本。
这表明像这样的工作流程可能会满足您的需求:
on:
push:
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
release:
runs-on: macOS-latest
strategy:
fail-fast: false
matrix:
qt-version: ['5.15.1']
ios-deployment-architecture: ['arm64', 'x86_64']
ios-deployment-target: '12.0'
steps:
- name: build SDK
run: ...
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
- "SDK_file1" # created in previous build step
- "SDK_file2"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPOSITORY: username/reponame
- name: publish SDK
run: ...
Run Code Online (Sandbox Code Playgroud)
我已经简化了您需要执行的操作,但我猜测您可能想要上传名称反映其适用矩阵选项的资产。对于该细节,我建议在您的作业中添加一个显式步骤来创建资产的文件名并将其添加到作业环境中,这与我在这里所做的有点类似:
- name: Name asset
run: |
BINARY_NAME=sdk-qt${{matrix.qt-version}}-iOS${{matrix.ios-deployment-target}}-${{matrix.ios-deployment-architecture}}
echo "BINARY_NAME=$BINARY_NAME" >> $GITHUB_ENV
Run Code Online (Sandbox Code Playgroud)
然后,当您的构建步骤生成资产时,您可以使用 中的文件名命名它们${{env.BINARY_NAME}},并将相同的名称传递给发布创建步骤,就像我在此处的资产发布步骤中所做的那样。
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |