1
votes

Actions Github - Aucun fichier ou répertoire de ce type à aucune étape d'exécution

J'essaie de tester les actions Github pour un petit projet Web. J'ai deux projets dans le référentiel et je souhaite créer un script de déploiement pour le client Web uniquement.

Le référentiel ressemble à ceci:

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.

Je souhaite exécuter des scripts dans le répertoire WebClient. Quand j'essaye de cd dans ./src/webclient, j'obtiens l'erreur 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

La sortie de l'étape "Ouvrir le répertoire du client Web":

root
|
|-src
|  |-API
|  |
|  |-WebClient
|
|-docs

Il semble réussir à ls -la commande ls -la , mais ne parvient pas à trouver le répertoire ./src/webclient.

Y a-t-il quelque chose d'évident qui me manque? J'ai essayé de changer la commande en cd src/webclient , et cela échoue également. Cela fonctionne sur deux machines locales différentes, un ubuntu et un MacOS.


1 commentaires

Le nom du répertoire est-il WebClient ou webclient ? Le système de fichiers est sensible à la casse, et s'il s'agit de WebClient comme vous l'avez montré pour la première fois, vous devez utiliser cd src/WebClient au lieu de cd src/webclient .


3 Réponses :


1
votes

D'après vos logs, cela semble être dû au respect de la casse: vous montrez que le référentiel contient src/WebClient (camel cased!), Mais ensuite vous essayez de cd src/webclient (minuscules).

Sous macOS, cela fonctionnerait car le système de fichiers est insensible à la casse par défaut; Je ne sais pas pourquoi cela fonctionne sur votre système Ubuntu, à moins que vous n'utilisiez quelque chose comme la complétion des onglets, qui fait le boîtier pour vous.

Pour vérifier ce que vous avez dans vos sous-répertoires, vous pouvez exécuter find src au lieu de ls -la pour voir toute l'arborescence de répertoires dans src .


1 commentaires

C'était le problème. Mon WSL était un onglet pour moi. On dirait un PEBCAK de qualité A!



0
votes

Essaye ça:

- name: Open Web Client Directory
  working-directory: src/webclient
  run: |
    ls -la


0 commentaires

0
votes

Ce n'est pas le cas pour OP, mais j'ai eu un problème où une étape échouait toujours avec Error: No such file or directory quelle que soit la façon dont je l'ai configuré.

Il s'avère que l'erreur était due au fait que je n'avais pas extrait le code lors d'une étape précédente.

Assurez-vous donc toujours de le faire:

steps:
  - uses: actions/checkout@v2


0 commentaires