que bash circleci

bash - que - circleci dashboard



Permiso de CircleCI denegado la ejecuciĆ³n de script bash (4)

Como @palfrey dice que la secuencia de comandos probablemente no está marcada como ejecutable, y algunas veces parece que está mal marcada en la implementación, incluso cuando anteriormente ha ejecutado chmod +x en su secuencia de comandos en su máquina local. (¿Por qué? No lo sé. ¡Si alguien lo hace, por favor, ilumíname!)

Este es un comando general que se utiliza para garantizar que sus scripts siempre estén marcados como ejecutables. Esto supone que todos están ubicados en un directorio /home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scripts y todos tienen una extensión .sh . Si sus directorios son diferentes, edítelos para usar su directorio.

Dado que todos mis scripts shared.sh un script compartido ( shared.sh ) en la parte superior de cada script llamado por circle.yml , agrego el siguiente código a shared.sh que garantiza que todos los scripts estén marcados como ejecutables:

SCRIPTS="/home/ubuntu/${CIRCLE_PROJECT_REPONAME}/scripts" find "${SCRIPTS}" | grep "/.sh$" | xargs chmod +x

Funciona de maravilla. :-)

Tengo un archivo circle.yml así:

dependencies: override: - meteor || curl https://install.meteor.com | /bin/sh deployment: production: branch: "master" commands: - ./deploy.sh

Cuando empujo a Github, me sale el error:

/home/ubuntu/myproject/deploy.sh returned exit code 126 bash: line 1: /home/ubuntu/myproject/deploy.sh: Permission denied Action failed: /home/ubuntu/myproject/deploy.sh

Cuando ejecuto los comandos que viven dentro de deploy.sh fuera del archivo (bajo los commands ), todo funciona bien.

Todo en el archivo circle.yml parece estar en línea con los ejemplos en los documentos de CircleCI ... ¿Qué estoy haciendo mal?



Varios problemas posibles:

  1. deploy.sh podría no estar marcado como ejecutable ( chmod +x deploy.sh solucionaría esto)
  2. La primera línea de deploy.sh podría no ser un shell ejecutable ...

Si el primero no funciona, ¿podemos ver los contenidos de deploy.sh?


Yo estaba teniendo el mismo problema. Agregué sh a la parte frontal de la sección de comandos para que funcione.

deployment: production: branch: "master" commands: - sh ./deploy.sh

Esperemos que esa solución salve a todos en el futuro.