GitHub 操作 - 如何在子目录中构建项目
GitHub Actions - How to build project in sub-directory
我正在使用 GitHub 操作来构建我的项目,但我的 Dart 项目位于存储库的子目录中。 Action 脚本无法找到我的 pubspec.yaml
并获取依赖项。
如何指向我的 GitHub 操作以在我的存储库中的子目录中查找源代码?
. (root of my GitHub repository)
└── dart_project
├── pubspec.yaml <-- Git Hub action must point to this sub-dir
└── node_project
├── packages.json
这是我收到的错误:
Could not find a file named "pubspec.yaml" in "/__w/<my_project_path>".
##[error]Process completed with exit code 66.
这是 GitHub 自动生成的 dart.yml
文件。
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
如果我了解您的需求,您需要 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
如果您想将其应用到每一步,请使用标签 defaults
defaults:
run:
working-directory: dart_project
我相信这应该是您所需要的。
为此,您可以在步骤级别上配置 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
职位级别的示例。这减少了作业级别的重复。这适用于处理子目录的作业。
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
全球层面的例子。这减少了全球层面的重复。这适用于工作流文件中的所有作业都用于位于子目录中的项目。
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
我正在使用 GitHub 操作来构建我的项目,但我的 Dart 项目位于存储库的子目录中。 Action 脚本无法找到我的 pubspec.yaml
并获取依赖项。
如何指向我的 GitHub 操作以在我的存储库中的子目录中查找源代码?
. (root of my GitHub repository)
└── dart_project
├── pubspec.yaml <-- Git Hub action must point to this sub-dir
└── node_project
├── packages.json
这是我收到的错误:
Could not find a file named "pubspec.yaml" in "/__w/<my_project_path>".
##[error]Process completed with exit code 66.
这是 GitHub 自动生成的 dart.yml
文件。
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
如果我了解您的需求,您需要 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
如果您想将其应用到每一步,请使用标签 defaults
defaults:
run:
working-directory: dart_project
我相信这应该是您所需要的。
为此,您可以在步骤级别上配置 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
职位级别的示例。这减少了作业级别的重复。这适用于处理子目录的作业。
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
全球层面的例子。这减少了全球层面的重复。这适用于工作流文件中的所有作业都用于位于子目录中的项目。
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