Github操作-任何运行步骤都没有此类文件或目录

时间:2020-10-17 18:18:44

标签: github continuous-integration github-actions

我正在尝试为一个小型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。

3 个答案:

答案 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