我有两个存储库和repo a和repo b,我在这两个存储库中使用github操作。repoa创建一些jar文件,这些文件是运行repob所必需的。
回购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 of local将这些jar放到外部库中,这会变得更容易。
在这里,我不知道如何在repob中使用repoa中的jar,因为工作流中的每个作业都在虚拟机的新示例中执行。
我想出了一个解决方案,在repo b的build.yml文件中编写几行代码来克隆和构建repo a,但是构建repo a需要很长时间。
我也想知道jfrog在这方面有什么帮助?
1条答案
按热度按时间jljoyd4f1#
您可以从repo a上传构建产生的jar作为构建工件,然后使用repo b中的下载工作流工件操作步骤来下载它。