[英]GitHub Actions Matrix sharing the Same Code CheckOut
我嘗試對鏈式作業執行一次步驟操作/checkout@v3,但似乎“構建”作業沒有獲得代碼。 我收到錯誤消息“找不到項目”。
我可以為兩個工作調用 actions/checkout @ v3 一次嗎?
當我兩次調用代碼結帳時它起作用了。
name: publish-nuget
on:
push:
branches:
- main
jobs:
prepare:
runs-on: ubuntu-latest
- name: Checkout code
uses: actions/checkout@v3
- name: Get package version
id: get_package_version
uses: kzrnm/get-net-sdk-project-versions-action@v1.3.0
with:
proj-path: ProjectOne.csproj
build:
needs: prepare
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
# Add the projects path below
strategy:
matrix:
projects: [
'ProjectOne.csproj',
'ProjectTwo.csproj',
]
steps:
- name: Pack NuGet
run: dotnet pack ${{ matrix.projects }} -p:PackageVersion=${{ env.PACKAGE_VERSION }} --configuration Release
當我調用一次代碼結帳時(在“准備”工作中),它不起作用。
name: publish-nuget
on:
push:
branches:
- main
jobs:
prepare:
runs-on: ubuntu-latest
- name: Checkout code
uses: actions/checkout@v3
- name: Get package version
id: get_package_version
uses: kzrnm/get-net-sdk-project-versions-action@v1.3.0
with:
proj-path: ProjectOne.csproj
build:
needs: prepare
runs-on: ubuntu-latest
steps:
# Add the projects path below
strategy:
matrix:
projects: [
'ProjectOne.csproj',
'ProjectTwo.csproj',
]
steps:
- name: Pack NuGet
run: dotnet pack ${{ matrix.projects }} -p:PackageVersion=${{ env.PACKAGE_VERSION }} --configuration Release
讓一份工作依賴於另一份工作,只是出於邏輯目的,而不是 state 或工件依賴共享。 您實際上是在 2 個不同的代理上運行 2 個作業。 如果你想從准備作業中共享一些東西,你可以使用緩存或工件 API。例如,使用緩存 API 來緩存路徑“somePath”。 下載緩存的步驟相同。
- name: Cached build artifacts
uses: actions/cache@v2
id: artifactcache
with:
path: somePath
key: buildArtifacts${{ github.run_number}}
由於將其拆分為 2 個作業不會獲得任何好處,因此我會在一個作業中運行所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.