Github 操作 - 在任何 运行 步骤上都没有此类文件或目录
Github Actions - No Such File or Directory on Any Run Step
我正在尝试为一个小型 Web 项目测试 Github 操作。我在存储库中有两个项目,我只想为 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。
根据您的日志,这似乎是由于区分大小写:您显示存储库包含 src/WebClient
(驼峰式!),但随后您尝试 cd src/webclient
(小写)。
在 macOS 上,这是可行的,因为文件系统默认不区分大小写;不确定为什么它可以在您的 Ubuntu 系统上工作,除非您使用制表符补全之类的东西,它会为您做外壳。
要检查子目录中的内容,您可以 运行 find src
而不是 ls -la
来查看 src
.[=15= 中的整个目录树]
试试这个:
- name: Open Web Client Directory
working-directory: src/webclient
run: |
ls -la
无论我如何配置,我都遇到了以下步骤失败的问题:
Error: No such file or directory
原来这是因为我在上一步中没有签出存储库!
我现在总是将结帐作为工作的第一步:
steps:
- uses: actions/checkout@v2
一个不同的解决方案,但它可能对其他人有帮助。
在我的例子中,我正在读取一个带有 new-lines 的秘密变量,如下所示:
echo ${{ secrets.STORE_FILE_BASE64 }} | base64 --decode > ${{ github.workspace }}/android/key.jks
这引发了“错误:没有这样的文件或目录”。更改为 "${{ secrets.STORE_FILE_BASE64 }}"
(注意引号)解决了我的问题!
我正在尝试为一个小型 Web 项目测试 Github 操作。我在存储库中有两个项目,我只想为 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。
根据您的日志,这似乎是由于区分大小写:您显示存储库包含 src/WebClient
(驼峰式!),但随后您尝试 cd src/webclient
(小写)。
在 macOS 上,这是可行的,因为文件系统默认不区分大小写;不确定为什么它可以在您的 Ubuntu 系统上工作,除非您使用制表符补全之类的东西,它会为您做外壳。
要检查子目录中的内容,您可以 运行 find src
而不是 ls -la
来查看 src
.[=15= 中的整个目录树]
试试这个:
- name: Open Web Client Directory
working-directory: src/webclient
run: |
ls -la
无论我如何配置,我都遇到了以下步骤失败的问题:
Error: No such file or directory
原来这是因为我在上一步中没有签出存储库!
我现在总是将结帐作为工作的第一步:
steps:
- uses: actions/checkout@v2
一个不同的解决方案,但它可能对其他人有帮助。
在我的例子中,我正在读取一个带有 new-lines 的秘密变量,如下所示:
echo ${{ secrets.STORE_FILE_BASE64 }} | base64 --decode > ${{ github.workspace }}/android/key.jks
这引发了“错误:没有这样的文件或目录”。更改为 "${{ secrets.STORE_FILE_BASE64 }}"
(注意引号)解决了我的问题!