問題タブ [gitversion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gitversion - プレリリース用の GitVersion の設定
NuGet.org にデプロイする予定の新しいプロジェクトを GitHub で作成しました。
初期リリースを「プレリリース」にしたい (マスター ブランチから AppVeyor を介してビルドする)。
以前gitversion init
は GitVersionConfig.yaml を生成していました。このプロセスでは、ほとんどの項目がコメント アウトされた冗長ファイルが作成されることを示唆していましたが、実際には次のように作成されました。
望ましい結果を得るには、何を変更する必要がありますか?
git - Git バージョンは常に prerelase ラベルを「unstable」に設定します - 構成ファイルを尊重させるにはどうすればよいですか?
私の人生では、PreReleaseLabel
アルファまたはGitVersionConfig.yamlにあるものに変更する方法を理解することはできません。考えていることを追跡するために gitversion を取得する方法はおそらくありますか?
これは私のgitversion出力です:
GitVersion.exe
また
GitVersion.exe /output ビルドサーバー
これは私の GitVersionConfig.yaml ファイルです
git - 一度ビルドしたら、gitflow と gitversion を使用して多数デプロイ
gitflow は私たちのニーズに適合し、giversion は gitflow に適合しているようです。しかし、私が完全に理解していないことが1つあります。何が私を悩ませているのか説明しましょう。
- 私たちは開発ブランチでいくつかの機能に取り組んでいます - すべてのパッケージはこの 1.3.0-unstable.1、1.3.0-unstable.2 などのようにマークされています。
- すべてのパッケージは、開発、テスト、uat、製品などのパイプラインを通過します。
- したがって、開発の準備が整い、すべてが良好な状態になったら、gitflow に従ってリリース ブランチを開始します。
- リリース時に変更を行う必要はありません。すぐに終了します - リリース ブランチはマスターと開発にマージされます。
- ビルド サーバーは、もう 1 つのパッケージ 1.3.0 を作成します。これは、prod 対応の一種です。
ビルドを一度達成するには、ここで多くを展開しますか? すべてのルールに従って、1.3.0-unstable.x を prod env に昇格する必要があります。これは、このパッケージが開発およびテストでテストされたためですが、prod のバージョンは少し奇妙に見えますよね? master ブランチから来た 1.3.0 がどこにもデプロイされなかったとき。
質問はこれに似ています: git フロー モデルでは、マスターのマージ コミットからリリースまでビルドする必要がありますか?
答えは本当に満足のいくものではありません:
- マスターへのマージ中に -no-ff を実行します
- 相変わらずパッケージが違う
f# - GitVersion 環境変数の使用方法
AppVeyor を介してビルドするために使用したプロジェクトがあります。ビルド シーケンスは次のとおりです。
- GitVersion をインストールして実行する
- ビルド プロジェクト
- 評価されたバージョン番号を使用してパッケージを作成します。
最後の手順は、PowerShell コマンドによって実行されました。
ご覧のとおり、バージョンは GitVersion によって定義された環境変数から取得されます。ここで、ビルドを FAKE ビルド スクリプトに移行したいと考えています。
これらの依存関係をスクリプトで定義しています。
Git バージョンの手順は簡単です。
変数が GitVersion によって設定されていることをログで確認できます。
環境変数の追加。名前='GitVersion_SemVer' 値='1.1.1-xxx'
次のステップは、パッケージを作成することです。
定義されたすべての変数を出力しています。その後、変数を読み取って に代入してバージョンを取得しようとしていversion
ます。
残念ながらversion
、ビルドを実行しても空のままです。メソッド呼び出しを追加した後TraceEnvironmentVariables()
、GitVersion で定義された変数が出力に表示されていないことがわかります。
John Palmerとdustinmorisが言ったように、プロセスShell.Execute
はすべての変数をプロセスレベルのものとして設定することによって開始されました。
Shell.Execute
プロセスがグローバルスコープの環境変数を設定できるようにする方法はありますか?
UPD
AppVeyor.yml
回避策として、構成ファイルに次の手順を追加しました。
この場合、変数はグローバル スコープで設定され、それらを取得してビルド スクリプトで使用できます。
明らかに、PowerShell は別の方法で GitVersion を開始します。ビルドスクリプトで何らかの方法で模倣する必要があると思います。
したがって、私の質問は同じままです。スクリプトで GitVersion をターゲットとして使用し、バージョン番号を取得する方法です。
.net - GitVersion: Nuget パッケージ バージョンを介して Octopus Deploy によって拒否された複数のリリース候補
GitVersionを使用して、構築中の .net 製品のセマンティック バージョニングを行っています。特定のバージョンの作業中、私は通常、いくつかのリリース候補を「開発」および「ステージング」環境にデプロイします。
Octopus Deployでデプロイしようとすると、すべてのリリース候補が同じ Nuget パッケージ バージョンを共有していることがわかりました。そのため、Octopus は最初のリリース候補をうまく処理しますが、次の RC の受け入れを拒否します。
Octopus が Nuget ストアにリリース候補を受け入れるように、Nuget パッケージ バージョンにリリース候補の違いを反映させる最善の方法は何ですか?
追加の詳細:
- 私は GitHub Flow を採用しているので、マスターと機能のブランチとデプロイのみが常にマスターからのものです。
- 私のビルド ツールは TeamCity です。
json - コミット時に gitversion を使用して manifest.json のバージョンを更新する
manifest.json を持つ Google Chrome 拡張機能があります。最近、gitversion を使い始めましたが、気に入っています。gitversion でバージョンが変更されるたびに、manifest.json のバージョンをスマートにインクリメントする方法はありますか?