【问题标题】:GitHub Actions Matrix sharing the Same Code CheckOutGitHub Actions Matrix 共享相同的代码 CheckOut
【发布时间】:2023-02-01 16:04:25
【问题描述】:

我尝试对链式作业执行一次步骤操作/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

【问题讨论】:

  • 打字错误:第一个工作名称是prepre,但build工作取决于prepare,即needs: prepare

标签: yaml github-actions


【解决方案1】:

让一个工作依赖于另一个工作,只是出于逻辑目的,而不是状态或工件依赖共享。您实际上是在 2 个不同的代理上运行 2 个作业。如果你想从准备工作中分享一些东西,你可以使用缓存或工件 API。例如。使用缓存 API 来缓存路径“somePath”。下载缓存的步骤相同。

- name: Cached build artifacts
  uses: actions/cache@v2
  id: artifactcache
  with:
    path: somePath
    key: buildArtifacts${{ github.run_number}}

由于将其拆分为 2 个作业不会获得任何好处,因此我会在一个作业中运行所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 2021-04-10
    • 2021-09-15
    • 2020-02-17
    • 2011-05-30
    相关资源
    最近更新 更多