2016-11-07 8 views
5

私はパッケージとして展開MyAssembly.Api.1.0.0-βを、私が使用してのBitbucketのパイプラインを構築し、dotnet packでパックnetcoreapp1.0を持っている、とタコにプッシュ - 。* nupkg*がどこにありますかコミット番号/ビルド番号(またはその他の安定した増分番号)であるはずです。インクリメントのBitbucketのパイプラインで数

GITのコミット識別子はUUIDなので、私はコミット数を得るために以下のコマンドを試しましたが(下を参照)、結果のコミット数は非常に信頼できず、期待通りに動作しません。ローカルでは正常に動作し、ローカルレポにコミットするたびにコミット数が増えます。残念ながら、(Dockerコンテナで実行されている)パイプラインでは動作しません。何らかの理由で、コミット数が同じか、時には減少することがあります。

"shallow/unshallow" git repo blabla ...と、それは毎回(GITに)ログインすることで解決できるかもしれないと読んだところです。私がそれを避けることができれば私はこれをしたくないし、Bitbucket自体の中でGITにログインする必要があることはちょっと皮肉なことだ。

git shortlog | grep -cE '^[ ]+\w+' 
git rev-list HEAD --count 
git rev-list --all --count 
git rev-list --no-merges --count HEAD 
git log --pretty=format:'' | wc -l 
git log master --pretty=oneline | wc -l 

Q:値をインクリメントし、パイプラインの変数としてアクセスするための他の方法はありますか?

答えて

2

これまでに発見したように、gitリポジトリや履歴からインクリメンタルナンバーを直接取得することは容易ではありません。

Bitbucketパイプラインで変数を読み取り設定する別の方法は、 "Environement variables"です。

この問題を解決するには、希望の初期値を持つ環境変数を設定し、この環境変数の数値をBitbucketパイプラインで実行されるスクリプトで直接インクリメントします。

+0

は「その後のBitbucketパイプラインで実行されるスクリプトで直接この環境変数に番号をインクリメント」 - あなたは、これがどのように行われるかについて詳しく説明できますか?私はそれを理解しているので、私は環境変数への書き込みアクセスを持っていないのですか? – Marcus

+2

bitbucket APIを使用してリポジトリレベルのカスタム変数を更新することは可能ですhttps://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Busername%7D/%7Brepo_slug%7D/pipelines_config/variables/% 7Bvariable_uuid%7D。私はこれを使用してカウンタを更新するアプローチに取り組んでいます –

関連する問題