SED はファイル名から要素を検索し、デルタ値に置き換えます。

SED はファイル名から要素を検索し、デルタ値に置き換えます。

サンプルファイル名はSample-0.0.1-SNAPSHOT.jar(jenkinsのMavenビルド結果)です。

私の目標は、失敗したときに実行されるシェルスクリプトを実行することで、ファイル名に増分番号を追加することです。

だから我々はSample-0.0.1-1-SNAPSHOT.jarSample-0.0.1-2-SNAPSHOT.jar..etcと言うことができます。

(BTW:ファイル名を生成するために、Jenkinsは$POM_ARTIFACTID-$POM-VERSION.jar環境変数型を使用してPOMファイルから関連情報を取得します。)

どういうわけか$POM-VERSIONを使ってエコーし、sedを使って増分数を追加/置換することを考えていますか?

問題は、実行方法がわからないことです。だから誰かがこの問題を見つけるのを助けることができれば良いでしょう!また、より良いアイデアがあれば喜んで受け入れます。

ベストアンサー1

ワークスペースが永続的であると仮定すると、各ビルド後に次のイベントがトリガーされます。

if [ -f counterfile.txt ]; then
  num=$(cat counterfile.txt)
else
  num=0
fi
num=$((num+1))
echo $num>counterfile.txt

filename=$POM_ARTIFACTID-$POM-VERSION.jar
newfilename=echo $filename | sed "s/-SNAPSHOT/-$num-SNAPSHOT/"
mv $filename $newfilename

おすすめ記事