Számok futtatása és összeállítása
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Ez a cikk bemutatja, hogyan épülnek fel az Azure Pipelines-buildszámok és a futtatási számok, és hogyan szabhatja testre őket a folyamatokban.
A futtatási szám egy folyamat vagy build meghatározott végrehajtásának azonosítására szolgál. A buildszám a futtatási szám szinonimája.
Ha nem ad meg buildnevet a YAML-folyamatokban, vagy a Név mezőt üresen hagyja a klasszikus folyamatokban, a futtatás neve egy egyedi egész szám lesz. Több hasznos nevet adhat a futtatásoknak, amelyek hasznosak a csapat számára. A buildnevekben tokenek, változók és aláhúzásjelek kombinációját használhatja.
A YAML-folyamatokban a buildnév tulajdonság meghívva name
van, és a folyamat gyökérszintjén kell lennie. A YAML-fájlok gyökérszintjén megadott elemek folyamattulajdonságok.
Feljegyzés
A name
tulajdonság nem működik sablonfájlokban.
Az alábbi példakód egy testre szabott buildszámot ad ki, például project_def_master_202408281.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)'
Futtatási szám
Az Azure Pipelinesban futó szám alapértelmezett értéke a következő $(Date:yyyyMMdd).$(Rev:r)
. $(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)
visszaáll, 1
amikor a buildszám bármely más része megváltozik. Ha például a buildszám formátumát úgy $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r)
konfigurálja, hogy a buildszám a dátum változásakor alaphelyzetbe áll.
Ha az előző buildszám volt MyBuild_20230621.1
, akkor a következő buildszám aznap lesz MyBuild_20230621.2
. A következő nap MyBuild_20230622.1
az első buildszám.
$(Rev:r)
is visszaáll, 1
ha módosítja a build számát, hogy jelezze a verzióváltoztatást. Ha például a build formátuma, 1.0.$(Rev:r)
és az utolsó buildszám az volt 1.0.3
, ha a buildszámot a következő buildszámra 1.1.$(Rev:r)
módosítja, akkor a következő buildszám lesz 1.1.1
.
Példa
A buildfuttatáshoz vegye figyelembe a következő adatokat:
- Projekt neve: Fabrikam
- Folyamat neve: CIBuild
- Ág: fő
- Buildazonosító/futtatás azonosítója: 752
- Dátum: 2024. május 6.
- Időpont: 21:07:03
- Az egyik futtatás a mai napon befejeződött.
Ha a következő buildszámformátumot adja meg, a második futtatás 2024. május 6-án Fabrikam_CIBuild_main_20240506.2 lesz.
$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
Tokenek
Az alábbi táblázat az előző példa alapján mutatja be, hogyan oldódnak fel az egyes jogkivonatok. Ezeket a jogkivonatokat csak futtatási számok definiálására használhatja. Máshol nem működnek a folyamatokban.
Jogkivonat | Példaérték | Jegyzetek |
---|---|---|
$(Build.DefinitionName) |
CIBuild | A folyamatnév nem tartalmazhat érvénytelen vagy üres szóköz karaktereket. |
$(Build.BuildId) |
752 | $(Build.BuildId) egy belső, nem módosítható azonosító, más néven futtatási azonosító, amely egyedi az Azure DevOps-szervezetben. |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
21 | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | A harmadik napi futás, 3 és így tovább. Annak $(Rev:r) biztosítására, hogy minden befejezett build egyedi névvel rendelkezzen. |
$(Date:yyyyMMdd) |
20240506 | Más dátumformátumokat is megadhat, például $(Date:MMddyy) . |
$(Seconds) |
3 | |
$(SourceBranchName) |
main | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
24 | |
$(Year:yyyy) |
2024 |
Fontos
Ha a futtatási számban a nullák előtagjait szeretné megjeleníteni, további r
karaktereket is hozzáadhat a Rev
jogkivonathoz. Adja meg $(Rev:rr)
például, hogy a Rev
szám a következővel 01
02
kezdődjön, és így tovább.
Ha egy verziószámozási séma részeként használ nulla párnát Rev
, 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. Ez a viselkedés a verziószám eltérését okozza a létrehozott összetevőkben.
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)
.
Változók
A buildszámban használhat felhasználó által definiált és előre definiált változókat. Ha például definiálja My.Variable
, a következő számformátumot adhatja meg:
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Az előző példában az első négy változó előre definiálva van. További információ a felhasználói változók definiálásáról: Változók beállítása folyamatokban.
GYIK
Mekkora lehet egy futtatási szám, és milyen karaktereket használhatok?
A futtatási számok legfeljebb 255 karakter hosszúságúak lehetnek. Nem használhatja a karaktereket "
, /
, :
, <
, |
?
'
>
, , @
, vagy *
, és nem fejezheti be a számot..
Milyen időzónában vannak kifejezve a buildszám időértékei?
Az időzóna UTC.
Az időzóna megegyezik az alkalmazásréteg-kiszolgálót futtató gép operációs rendszerének időzónával.
Hogyan állíthatom be dinamikusan a buildszámot feltételekkel?
A futtatási szám részeként változókat is használhat. Az alábbi példában a függvény a futtatási szám részeként használja a változót why
, és az értéke a Build.Reason
függvénytől függően változik.
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)'
Hogyan hivatkozhatok a futtatási szám változóra egy szkripten belül?
Megadhat egy új változót, amely tartalmazza a futtatási számot, vagy meghívhatja közvetlenül a futtatási számot. Az alábbi példában egy új változó található, $(MyRunNumber)
amely tartalmazza a futtatási számot. A futtatási szám változót a következővel MyRunNumber
hívhatja meg: vagy $(Build.BuildNumber)
.
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)