我有一个Jenkinsfile
与以下阶段执行bash (sh
)脚本:
stage('Prepare') {
sh 'cd ./bin && ./prepare.sh'
}
Jenkins在产生错误的阶段失败:
14:27:16 + cd ./bin 14:27:16 + ./prepare.sh 14:27:16 /data/jenkins/workspace/repo_J_tmp/durable-8864902e/script.sh: line 1: ./prepare.sh: Permission denied
我使用IntelliJ Idea和Windows。如何改变和推动权利?
Git Bash中的chmod=+x ./bin/prepare.sh
命令没有注册为变更,所以没有什么要提交的。
需要使用git --update-index
和Git Bash,然后通过Windows命令行执行提交。
命令顺序如下(假设安装了Git Bash):
PS C:Developmentrepo> bash
user@DESKTOP-ABCDEFG:/mnt/c/Development/repo$ git update-index --chmod=+x ./docs/prepare.sh
user@DESKTOP-ABCDEFG:/mnt/c/Development/repo$ exit
PS C:Developmentrepo> git commit -m"Executable Script"
提交准备被推送(ctrl+shift+k或git push
)。
另外,注意行分隔符必须是LR
: Unix和MacOS兼容(n
),否则/usr/bin/env: ‘bashr’: No such file or directory
显示为错误。