我正在尝试为一个小型Web项目测试Github Actions。我的存储库中有两个项目,我只想为Web客户端创建一个部署脚本。
存储库如下:
root
|
|-src
| |-API
| |
| |-WebClient
|
|-docs
我想在WebClient目录中运行脚本。当我尝试将CD插入./src/webclient时,出现错误no such file or directory
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js environment
uses: actions/setup-node@v2.1.2
- name: Open Web Client Directory
run: |
ls -la
cd ./src/webclient
ls -la
- name: Run a multi-line script
run: |
echo Add other actions to build,
echo test, and deploy your project.
ls -la
“打开Web客户端目录”步骤的输出:
total 28
drwxr-xr-x 5 runner docker 4096 Oct 17 18:05 .
drwxr-xr-x 3 runner docker 4096 Oct 17 18:05 ..
drwxr-xr-x 8 runner docker 4096 Oct 17 18:05 .git
drwxr-xr-x 3 runner docker 4096 Oct 17 18:05 .github
-rw-r--r-- 1 runner docker 6215 Oct 17 18:05 .gitignore
drwxr-xr-x 4 runner docker 4096 Oct 17 18:05 src
/home/runner/work/_temp/43164e53-98ec-41c2-8773-72e94c3453e5.sh: line 2: cd: ./src/webclient: No such file or directory
Error: Process completed with exit code 1.
似乎成功执行了ls -la
命令,但是找不到目录./src/webclient。
我明显缺少什么吗?我尝试将命令更改为cd src/webclient
,但它也失败。它可以在两台不同的本地计算机上工作,一台ubuntu和一台MacOS。
答案 0 :(得分:1)
根据您的日志,这似乎是由于区分大小写:您显示存储库中包含src/WebClient
(带有驼峰的小写字母!),但随后尝试了cd src/webclient
(小写字母)。
在macOS上,这将起作用,因为默认情况下文件系统不区分大小写;不知道为什么它可以在您的Ubuntu系统上运行,除非您使用制表符补全之类的东西来完成任务。
要检查子目录中的内容,可以运行find src
而不是ls -la
来查看src
中的整个目录树。
答案 1 :(得分:0)
尝试一下:
- name: Open Web Client Directory
working-directory: src/webclient
run: |
ls -la
答案 2 :(得分:0)
OP并非如此,但是我遇到一个问题,就是无论我如何配置,Error: No such file or directory
的步骤总是失败。
结果是,错误是因为我没有在上一步中签出代码。
所以请务必确保这样做:
steps:
- uses: actions/checkout@v2