.Net Coreタスクを実行してパックします。出力されたnugetパッケージバージョンを自動インクリメント自体に、たとえば次の形式で取得するにはどうすればよいですか?
1.0.0
次回パック/プッシュするときは、1.0.1を見たい
Build.BuildNumberで環境ビルド変数を使用し、現時点で出力を取得しています:
20180913-.2.0など。従来のバージョン管理システムに修正したい
ありがとうございました。
たぶん私はそれを理解しました。
髪を引き裂く人はこれを試してください:
パックタスク:
パッケージの自動バージョン管理:環境変数を使用する
環境変数:Build.BuildNumber
次に、タスク/変数/トリガー/オプションがあるトップメニューで、[オプション]をクリックします。
ビルド番号の形式:1.0 $(Rev:.r)
保存してキューに入れます。 (1.0.1を生成します)
楽しい!
私が誰か間違っている場合、またはこれが長期的に機能しない場合は、私を修正してください。
docs から、変数_Rev:.r
_はdailyビルドリビジョンカウントです。受け入れられた「解決策」は、ある日は_1.0.12
_のバージョンを完成させ、翌日は_1.0.1
_になります。
単純なインクリメンタルとuniquesemverが必要な場合は、1.0.$(BuildID)
を使用します。
$(BuildID)
はビルド用の内部不変カウンタであり、したがって$(BuildNumber)
よりもはるかにクリーンです。
BuildIDは常にインクリメントされ、リセットされません。したがって、マイナーなバンプの後、_1.2.123
_が_1.3.124
_になると言うことになります。
このタスクをうまく実行したい場合は、 npm version または同様の方法を使用して実行できます。たとえば、DartまたはFlutterビルドの pubspec_version です。
_- script: npm version $RELEASE_TYPE
_
ここで、_$RELEASE_TYPE
_は、ビルド(CI:PRなど)に基づいて設定できる変数で、値はmajor
、minor
、patch
、prerelease
などです。
_- script: npm version $RELEASE_TYPE
condition: startsWith(variables['build.sourceBranch'], 'refs/head/release/')
env:
releaseType: minor
_
リポジトリのバージョンを更新するために、DevDependencyとして npm version を含めることにしました。これは、コミット時にプロジェクトバージョンをバンプするためのプリコミットフックです。
この手法は、他のプロジェクトタイプに適用してサブフォルダーに配置できますが、サーバーOSの要件が複雑になる可能性があります。
ビルドでこのバージョンを使用するには、このbashスクリプトtaskを追加します。これは、バージョンをタスク変数として取得およびエクスポートします。
_v=`node -p "const p = require('./package.json'); p.version;"`
echo "##vso[task.setvariable variable=packageVersion]$v"
_
残念ながら、レポバンプはありません。
_jobs:
- job: versionJob #reads version number from the source file
steps:
- powershell: |
$fv = Get-Content versionFile
Write-Host ("##vso[task.setvariable variable=versionFromFile;isOutput=true]$fv")
displayName: 'version from file'
name: setVersionStep
- job: buildJob # consumes version number, calculates incremental number and set version using assemblyinfo.cs
dependsOn: versionJob
variables:
versionFromFile: $[ dependencies.versionJob.outputs['setVersionStep.versionFromFile'] ] # please note that spaces required between $[ and dependencies
buildIncrementalNumber: $[ counter(dependencies.versionJob.outputs['setVersionStep.versionFromFile'],1) ] #can't use $versionFromFile here
steps:
- powershell: |
Write-Host ($env:versionFromFile)
Write-Host ($env:versionFromFile + '.' + $env:buildIncrementalNumber)
displayName: 'version from file output'
_
この投稿 は、version-prefixを使用し、BuildNumberをversion-suffix。
私にとっては、[オプション]タブの[ビルド番号の形式]を[
$(date:yyyy).$(date:MMdd)$(rev:.r)
次のビルド引数を追加します:
/p:Version=1.$(Build.BuildNumber) /p:AssemblyVersion=1.$(Build.BuildNumber)
この場合、メジャーバージョンを手動で管理しますが、マイナーバージョンとビルド番号は自動的に設定されます。展開したバージョンを簡単に理解できます。