Futtatási vagy buildelési számok konfigurálása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Testre szabhatja a folyamatfuttatások számozását. A futtatási szám alapértelmezett értéke a $(Date:yyyyMMdd).$(Rev:r)
következő.
Az Azure DevOps $(Rev:r)
egy speciális változóformátum, amely csak a buildszám mezőben működik. Ha egy build befejeződött, ha a buildszámban semmi más nem változott, az Rev
egész szám értéke eggyel nő.
$(Rev:r)
a buildszám egy részének módosításakor alaphelyzetbe áll. Ha például a buildszám formátumát $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)
konfigurálta, akkor a buildszám a következő napon történő módosításkor alaphelyzetbe áll. Ha a buildszám az MyBuild_20230621.1
, akkor a következő buildszám aznap lesz MyBuild_20230621.2
. A következő napon a build száma .MyBuild_20230622.1
Ha a buildszám formátuma az 1.0.$(Rev:r)
, akkor a buildszám a szám egy részének 1.0.1
módosításakor visszaáll. Ha például az utolsó buildszám volt 1.0.3
, és a buildszámot úgy módosítja, hogy 1.1.$(Rev:r)
a verzióváltoztatást jelezze, a következő buildszám a következő 1.1.1
.
A YAML-ben a rendszer meghívja name
ezt a tulajdonságot, és a folyamat gyökérszintjén kell lennie.
Ha nincs megadva, a futtatás neve egyedi egész szám lesz.
Sokkal hasznosabb neveket adhat a futtatásoknak, amelyek hasznosak a csapat számára.
Jogkivonatok, változók és aláhúzásjelek kombinációját is használhatja.
A name
tulajdonság nem működik sablonfájlokban.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)' # outputs customized build number like project_def_master_20200828.1
A YAML-buildek még nem érhetők el a TFS-en.
Példa
Ekkor elindul egy futtatás:
Projekt neve: Fabrikam
Folyamat neve: CIBuild
Ág: fő
Buildazonosító/futtatás azonosítója: 752
Dátum: 2019. május 5.
Időpont: 21:07:03.
Az egyik futtatás a mai napon befejeződött.
Ha ezt a buildszámformátumot adja meg:
$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:.r)
Ezután a második futtatás ezen a napon a következő nevet kapta: Fabrikam_CIBuild_main_20190505.2
Tokenek
Az alábbi táblázat bemutatja, hogyan oldja fel az egyes jogkivonatokat az előző példa alapján. Ezeket a jogkivonatokat csak futtatási szám definiálására használhatja; a folyamat más részén nem működnek.
Jogkivonat | Példa csereértékre |
---|---|
$(Build.DefinitionName) |
CIBuild Megjegyzés: A folyamat neve nem tartalmazhat érvénytelen vagy üres szóköz karaktereket. |
$(Build.BuildId) |
752 A $(Build.BuildId) egy belső, nem módosítható azonosító, amelyet futtatási azonosítónak is neveznek. Ez a vállalaton belül egyedülálló. |
$(DayOfMonth) |
5 |
$(DayOfYear) |
217 |
$(Hours) |
21 |
$(Minutes) |
7 |
$(Month) |
8 |
$(Rev:r) |
2 (A harmadik futtatás 3, és így tovább.) A $(Rev:r) használatával győződjön meg arról, hogy minden befejezett build egyedi névvel rendelkezik. Amikor elindul egy build, ha a buildszámban semmi más nem változott, a Rev egész szám értéke eggyel növekszik. Ha nullákat szeretne megjeleníteni a számban, további "r" karaktereket is hozzáadhat. Adja meg például a $(Rev:rr) értéket, ha azt szeretné, hogy a Rev szám 01, 02 és így tovább legyen. Ha egy verziószámozási séma részeként nulla párnázott Rev értéket használ, vegye figyelembe, hogy egyes folyamatfeladatok vagy népszerű eszközök, például a NuGet-csomagok eltávolítják a kezdő nullákat, ami a létrehozott összetevőkben eltérő verziószám-eltérést okoz. |
$(Date:yyyyMMdd) |
20090824 Más dátumformátumokat is megadhat, például $(Date:MMddyy) |
$(Seconds) |
3 |
$(SourceBranchName) |
main |
$(TeamProject) |
Fabrikam |
$(Year:yy) |
09 |
$(Year:yyyy) |
2009 |
Változók
Felhasználó által definiált és előre definiált változókat is használhat, amelyek a számban az "Összes" hatókörrel rendelkeznek. Ha például definiálta My.Variable
, a következő számformátumot adhatja meg:
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Az első négy változó előre definiálva van. My.Variable
A változók lapon ön határozza meg.
Kifejezések
Ha kifejezéssel állítja be a buildszámot, nem használhat jogkivonatokat, mert az értékek nincsenek beállítva a kifejezések kiértékelésének időpontjában. Ezek a jogkivonatok a következők: $(Build.BuildId)
, $(Build.BuildURL)
és $(Build.BuildNumber)
.
GYIK
Mekkora lehet egy futtatási szám, és milyen karaktereket használhatok?
A futtatások legfeljebb 255 karakter hosszúságúak lehetnek. A nem engedélyezett karakterek közé tartoznak a "
következők: , /
, :
, <
, >
, |
'
, , ?
, @
és *
. Nem végződhet egy .
.
Milyen időzónában fejezik ki a buildszám időértékét?
Az időzóna UTC.
Az időzóna ugyanaz, mint annak a gépnek az operációs rendszerének időzónája, amelyen az alkalmazásréteg-kiszolgálót futtatja.
Hogyan hivatkozhat a futtatási szám változóra egy szkripten belül?
A futtatási szám változó meghívható a következővel $(Build.BuildNumber)
: . Megadhat egy új változót, amely tartalmazza a futtatási számot, vagy meghívhatja közvetlenül a futtatási számot. Ebben a példában egy új változó található, $(MyRunNumber)
amely tartalmazza a futtatási számot.
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber) # display MyRunNumber
- script: echo $(Build.BuildNumber) #display Run Number
Hogyan állíthatom be dinamikusan a buildszámot feltételekkel?
A futtatási szám részeként változókat is használhat. Ebben a példában a változó why
a futtatási számtól függően Build.Reason
változik, és a futtatási szám részeként használatos.
variables:
- name: why
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: pr
${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
value: manual
${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
value: indivci
${{ else }}:
value: other
name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd).$(Rev:.r)
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo '$(Build.BuildNumber)' ## output run number
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: