【发布时间】:2021-01-01 08:52:07
【问题描述】:
我对一个简单的 Maven 项目的 GH Action 工作流程进行了以下配置。
name: Java CI
on:
pull_request:
branches:
- master
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Verify with Maven
run: mvn -B -e -ff clean verify
以前一切正常,直到我将 Maven 项目移动到 code 子目录中:
name: Java CI
on:
pull_request:
paths:
- code/**
branches:
- master
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache Maven repository
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Verify with Maven
run: mvn -B -e -ff clean verify --file code/pom.xml
现在在日志中我看到缓存步骤显示Cache not found for input keys: Linux-maven-xxxxxxx, Linux-maven-。
有谁知道为什么缓存不能与子目录中的项目一起使用? 谢谢。
【问题讨论】:
-
为什么要移动到子目录?通常 pom 文件位于项目的根目录中?...此外,您为什么对
paths: - code/**..做出反应? -
之所以将其移动到子目录中是因为根目录包含其他资源,例如(AWS)CDK、K8S 等。而且由于该工作只是运行 maven 测试,因此它以更改为条件
code文件夹。
标签: maven github github-actions