我正在使用 GitHub Actions 来构建我的项目,但我的 Dart 项目位于存储库的子目录中。操作脚本无法找到我的pubspec.yaml并获取依赖项。
如何指向我的 GitHub Action 以在我的存储库中的子目录中查找源代码?
. (root of my GitHub repository)
??? dart_project
??? pubspec.yaml <-- Git Hub action must point to this sub-dir
??? node_project
??? packages.json
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
Could not find a file named "pubspec.yaml" in "/__w/<my_project_path>".
##[error]Process completed with exit code 66.
Run Code Online (Sandbox Code Playgroud)
这是dart.ymlGitHub 自动生成的文件。
name: Dart CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
container:
image: google/dart:latest
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: pub get
- name: Run tests
run: pub run test
Run Code Online (Sandbox Code Playgroud)
rmu*_*unn 53
如果我了解您的需求,那么您需要pub运行这些步骤,就好像您已经完成了cd dart_project第一次一样,对吗?将working-directory参数添加到您的步骤中:
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: pub get
working-directory: dart_project
- name: Run tests
run: pub run test
working-directory: dart_project
Run Code Online (Sandbox Code Playgroud)
我相信这应该是你所需要的。
小智 36
working-directory为此,您可以在步骤级别上配置一个。您还可以为步骤配置默认目录。默认值可以是工作级别或全局级别。
步骤级别的示例。
jobs:
build:
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: pub get
working-directory: dart_project
- name: Run tests
run: pub run test
working-directory: dart_project
Run Code Online (Sandbox Code Playgroud)
工作级别的示例。这减少了工作层面的重复。这适用于处理子目录的作业。
jobs:
build:
defaults:
run:
working-directory: dart_project
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: pub get
- name: Run tests
run: pub run test
Run Code Online (Sandbox Code Playgroud)
全球层面的例子。这减少了全球层面的重复。当工作流程文件中的所有作业都针对位于子目录中的项目时,这适用于。
defaults:
run:
working-directory: dart_project
jobs:
build:
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: pub get
- name: Run tests
run: pub run test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11460 次 |
| 最近记录: |