はじめに
業務でJenkinsを使用してCI/CDの管理を行っているのですが、たまに遭遇するエラーで詰まったため備忘メモとして残します。
どんなとき
Jenkinsサーバーでビルド実行を行った際
どんなエラーが出たのか
bash: ./download.sh: 許可がありません
許可が無い=権限だなと思いJenkinsサーバーに入ってファイルの権限を確認。
すると、実行権限が無かったので、chmod
コマンドを実行してdownload.shの実行権限を付与しました。
いつもはこの対応で解消していたのですが、今回は再度ビルドを実行しても変化せずでした。
解決方法
以下のコマンドを実行し、commit&pushすることで権限を変えることができ、無事ビルドが通るようになりました。
git update-index --add --chmod=+x download.sh
原因
ビルド実行時にgitを使用して指定したブランチの最新のソースをクローンし、設定したコマンドを実行させていたのですが、
push元の自分の環境のdownload.shを確認したところ、ファイルの所有者にしか実行権限が無いように設定されており、その権限状態のソースを毎回クローンして持ってきていたために当該エラーが出てしまっていました。
最初にリポジトリを作成した際に権限が不十分な状態でgitに上げてしまったために、後で困ることになりました。
今後は注意したいと思います。
さいごに
同じようなエラーが出て困っている人の参考になれば幸いです。
参考