1

我有两个存储库和存储库 A 和存储库 B,并且我在两个存储库中都使用 GitHub 操作。Repo A 创建了一些运行 Repo B 所需的 jar 文件。

Repo A 的 build.yml 文件

name: Repo A
on:
  pull_request:
  push:  
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: 'PREP - GitHub context'
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}
        run: echo "$GITHUB_CONTEXT"

      - name: 'SETUP - Checkout PR branch'
        if: github.event_name == 'pull_request'
        uses: 'actions/checkout@v2'
        with:
          ref: '${{ github.event.pull_request.head.sha }}'

      - name: 'SETUP - Checkout Branch Code '
        if: github.event_name == 'push'
        uses: 'actions/checkout@v2'
        with:
          ref: '${{ github.ref }}'

      - name: 'SETUP - JAVA JDK 1.8'
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: 'SETUP - Cache Gradle packages'
        uses: 'actions/cache@v2'
        with:
          path: '~/.gradle/caches'
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
          restore-keys: ${{ runner.os }}-gradle

      - name: 'BUILD - Code Build & Unit Tests'
        run: | 
          sudo ./gradlew build

Repo B 有一个类似的 build.yml 文件

当这些存储库在本地构建时变得更容易,它使用本地的 .gradle 和 .m2 在外部库中获取这些 jar。

在这里,我无法弄清楚如何在 Repo B 中使用来自 repo A 的 jar,因为工作流中的每个作业都在虚拟机的新实例中执行。

我想出了一个解决方案,在 Repo B 的 build.yml 文件中编写几行代码来克隆和构建 Repo A,但是构建需要很长时间。

我也想知道 Jfrog 对此有何帮助?

4

1 回答 1

1

您可以将来自Repo A的构建生成的 jar 上传为构建工件,然后使用Repo B中的download-workflow-artifact 操作步骤下载它。

于 2020-11-17T16:27:07.663 回答