0

ジョブからグローバルパラメータを読み込むだけでなく書き込む方法はありますか? 読んで私はこのプラグインを使用しました:Global Variable String Parameter しかし、私はまだグローバルパラメータへの書き込みアクセスをサポートするものは何も見つかりませんでした。これは競争条件を作り出すことができるので、これが重要であることがわかりました。Jenkins:グローバルパラメータへの書き込み

は、私が実際に何をしたい:

私は2つのジェンキンスのジョブを持っている - それぞれ(例えば、「解放」と「ベータ」)Google Playストアになく、異なる放出トラックに私のAndroid APKを公開します。

ビルド番号をgradleから自動的にインクリメントしたい。しかし、gradleはVCSの外のどこからでも最後のビルドのビルド番号にアクセスする必要があります(別のコミットが必要なことを避けるため)。ビルド番号が順番に並んでいることを保証したいと思います。したがって、すべてのJenkinsジョブ(たとえば、 "version.properties"ファイル内)に別のビルド番号を保持することは解決策ではありません。

プランBは、日付でエンコードされたビルド番号に切り替えることができます。しかし、私は漸進的なアプローチの方法があるのか​​不思議です。

答えて

1

ジョブジョブスペースではなく、jenkinsワークスペースにある "version.properties"ファイルを使用できます。ファイルから

1-噴射環境変数

enter image description here

2-シェルスクリプトからバージョン

バージョン= $((APK

3-インクリメントを構築します$ version + 1))

echo version = $ version> $ {JENKINS_HOME}/workspace/mod ule.properties

+0

ファイルを私のjenkinsサーバーのファイルシステムに置くだけですか?あるいは、複数のノードの場合にスケーリングできるように、ジェンキン内のグローバルな "version.properties"を設定することはできますか? –

+1

はい、ファイルシステムにファイルを置く必要があります。残念ながら、このソリューションは、同じワークスペースを共有しないため、ノードを使用しない場合にのみ機能します。明確化のために –

+0

ありがとうございます。 Jenkinsがグローバル書き込み可能変数をサポートしていない理由は、同期問題と競合状態である可能性があります。 –

関連する問題