在另一个目录中为“uses”运行 github 操作
Posted
技术标签:
【中文标题】在另一个目录中为“uses”运行 github 操作【英文标题】:Running github actions for `uses` in another directory 【发布时间】:2021-07-21 17:46:44 【问题描述】:我的 maven 存储库位于 ./java
目录中。我想在./java
目录中运行 maven 测试,但出现以下错误:
The goal you specified requires a project to execute but there is no POM in this directory (/github/workspace). Please verify you invoked Maven from the correct directory. -> [Help 1]
这是我的工作流程:
# This is a basic workflow to help you get started with Actions
name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
build:
defaults:
run:
working-directory: java
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run maven test
uses: xlui/action-maven-cli@master
with:
lifecycle: 'clean package test'
working-directory
好像没用,怎么解决?
【问题讨论】:
当你遇到目录错误时,首先尝试actions/checkout@v2 【参考方案1】:working-directory
只能应用于run:
步骤(例如它不适用于动作)
动作xlui/action-maven-cli@master
当前不允许通知path
执行maven 命令。
你也可以
使用another (similar) action available on the Github Marketplace,它允许在执行maven命令之前通知directory path
,
打开 PR 以更新 xlui/action-maven-cli
操作,添加输入 path
(或 env
变量)以在执行 maven 命令之前执行 cd
命令,
在一个步骤中直接在您的工作流中安装maven
(例如setup maven action),然后使用run: |
在另一个步骤(不使用该操作)上直接运行maven 命令,然后使用cd ./java
在执行@987654335 之前@,
类似的东西(对于第 3 个选项):
steps:
- uses: actions/checkout@v2
- name: Install maven
run: |
...
- name: Run maven command
run: |
cd ./java
mvn clean package test
【讨论】:
感谢您的回答!我最终通过安装maven并添加-f
参数来指定maven测试目录解决了这个问题。我要提一提的是,官方的maven安装动作只在根目录下生效,所以cd ./java & mvn install
会导致'command not found: mvn'以上是关于在另一个目录中为“uses”运行 github 操作的主要内容,如果未能解决你的问题,请参考以下文章
在另一个工作流成功运行后手动触发 Github Actions 工作流
在另一个模块中为 EC2 添加指定子网 - AWS Terraform -
在另一个作业中重用 GitHub Action 工作流程步骤