Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Updated Git tag handling to be more robust #1399

Merged
merged 134 commits into from
Mar 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
20ac8b7
Added skeleton
AlexanderSehr Nov 7, 2023
4939b4d
Implemented first new tests
AlexanderSehr Nov 7, 2023
4e1d86f
Changed to warning
AlexanderSehr Nov 8, 2023
94fff0b
Expanded test verbosity & added additional tets
AlexanderSehr Nov 8, 2023
c18ce6b
Finalized further tests
AlexanderSehr Nov 8, 2023
a343694
Update to latest
AlexanderSehr Nov 8, 2023
3a6f0a2
Update to latest
AlexanderSehr Nov 8, 2023
4ab6a5b
Added module name + small fix
AlexanderSehr Nov 8, 2023
9bb64bd
Fixed kvlt
AlexanderSehr Nov 8, 2023
68e2bd2
Small caching fix
AlexanderSehr Nov 8, 2023
1a013c2
Small fix and enabled passthru of warnings to GH
AlexanderSehr Nov 8, 2023
1c2fc8a
More updates
AlexanderSehr Nov 8, 2023
d9c6dd5
Update to latest
AlexanderSehr Nov 8, 2023
dd0c343
Updated test names
AlexanderSehr Nov 8, 2023
2ebd458
JSON rollback
AlexanderSehr Nov 8, 2023
f6caf7e
Updated regex
AlexanderSehr Nov 8, 2023
f56f66a
Removed assertion
AlexanderSehr Nov 8, 2023
282b640
Update to latest
AlexanderSehr Nov 8, 2023
c025f52
Update avm/utilities/pipelines/staticValidation/compliance/module.tes…
AlexanderSehr Nov 9, 2023
405901a
Update avm/utilities/pipelines/staticValidation/compliance/module.tes…
AlexanderSehr Nov 9, 2023
904c82f
Merge branch 'main' into users/alsehr/testFileCompliance
AlexanderSehr Nov 9, 2023
ef24d1f
Rollback of unrelated changes
AlexanderSehr Nov 9, 2023
9393aa1
Merge branch 'Azure:main' into main
AlexanderSehr Nov 9, 2023
cb39086
Merge branch 'Azure:main' into main
AlexanderSehr Nov 9, 2023
89eac40
Merge branch 'Azure:main' into main
AlexanderSehr Nov 10, 2023
712a673
Merge branch 'Azure:main' into main
AlexanderSehr Nov 13, 2023
55e095f
Resolved conflict
AlexanderSehr Nov 14, 2023
3121335
Update to latest
AlexanderSehr Nov 14, 2023
e9d736c
Merge branch 'Azure:main' into main
AlexanderSehr Nov 15, 2023
abfa1b9
Merge branch 'Azure:main' into main
AlexanderSehr Nov 15, 2023
c6707f6
Merge branch 'Azure:main' into main
AlexanderSehr Nov 16, 2023
246f9ba
Merge branch 'Azure:main' into main
AlexanderSehr Nov 16, 2023
6e9729d
Merge branch 'Azure:main' into main
AlexanderSehr Nov 16, 2023
26ea9f6
Merge branch 'Azure:main' into main
AlexanderSehr Nov 17, 2023
c2d183b
Merge branch 'Azure:main' into main
AlexanderSehr Nov 18, 2023
0c6650e
Merge branch 'Azure:main' into main
AlexanderSehr Nov 19, 2023
65094a5
Merge branch 'Azure:main' into main
AlexanderSehr Nov 21, 2023
968cd9a
Merge branch 'Azure:main' into main
AlexanderSehr Nov 21, 2023
3c9589b
Merge branch 'Azure:main' into main
AlexanderSehr Nov 24, 2023
eb34ddf
Merge branch 'Azure:main' into main
AlexanderSehr Nov 25, 2023
3d4f5c6
Added pipeline to main for testing
AlexanderSehr Nov 26, 2023
70154f3
Merge branch 'Azure:main' into main
AlexanderSehr Nov 27, 2023
18bd2ad
Merge branch 'Azure:main' into main
AlexanderSehr Nov 27, 2023
940b34f
Merge branch 'Azure:main' into main
AlexanderSehr Nov 28, 2023
fbb840f
Merge branch 'Azure:main' into main
AlexanderSehr Nov 29, 2023
381e366
Merge branch 'Azure:main' into main
AlexanderSehr Nov 29, 2023
06bcda3
Merge branch 'Azure:main' into main
AlexanderSehr Dec 1, 2023
0858beb
Merge branch 'Azure:main' into main
AlexanderSehr Dec 1, 2023
72b5fbb
Merge branch 'Azure:main' into main
AlexanderSehr Dec 1, 2023
917a761
TEst disable pipe
AlexanderSehr Dec 4, 2023
1b89452
Merge branch 'Azure:main' into main
AlexanderSehr Dec 4, 2023
feb981e
Update to latest
AlexanderSehr Dec 4, 2023
dda85a8
Merge branch 'Azure:main' into main
AlexanderSehr Dec 4, 2023
0373f46
Merge branch 'Azure:main' into main
AlexanderSehr Dec 6, 2023
80247e4
Merge branch 'Azure:main' into main
AlexanderSehr Dec 9, 2023
2b5a791
Merge branch 'Azure:main' into main
AlexanderSehr Dec 10, 2023
f1bab34
Merge branch 'Azure:main' into main
AlexanderSehr Dec 19, 2023
ef12ee5
Merge branch 'Azure:main' into main
AlexanderSehr Dec 21, 2023
ec1722c
Merge branch 'Azure:main' into main
AlexanderSehr Dec 21, 2023
f4136ec
Added SA workflow
AlexanderSehr Dec 22, 2023
e55e732
Added workflow
AlexanderSehr Jan 1, 2024
5c6aa5e
Update to latest
AlexanderSehr Jan 1, 2024
086c1a8
Merge branch 'Azure:main' into main
AlexanderSehr Jan 2, 2024
a9821fb
Merge branch 'Azure:main' into main
AlexanderSehr Jan 3, 2024
62b326f
Merge branch 'Azure:main' into main
AlexanderSehr Jan 3, 2024
c159269
Merge branch 'Azure:main' into main
AlexanderSehr Jan 4, 2024
6e1f59a
Merge branch 'Azure:main' into main
AlexanderSehr Jan 5, 2024
fb7befc
Merge branch 'Azure:main' into main
AlexanderSehr Jan 5, 2024
cb72681
Merge branch 'Azure:main' into main
AlexanderSehr Jan 8, 2024
f3befb7
Merge branch 'Azure:main' into main
AlexanderSehr Jan 10, 2024
f938cd8
Merge branch 'Azure:main' into main
AlexanderSehr Jan 12, 2024
d0924b6
Merge branch 'Azure:main' into main
AlexanderSehr Jan 14, 2024
315522f
Merge branch 'Azure:main' into main
AlexanderSehr Jan 17, 2024
4012fdd
Update to latest
AlexanderSehr Jan 18, 2024
b18ab70
Merge branch 'Azure:main' into main
AlexanderSehr Jan 20, 2024
686dc83
Merge branch 'Azure:main' into main
AlexanderSehr Jan 22, 2024
3f225f9
Removed outdated metadata
AlexanderSehr Jan 23, 2024
f2bd197
Update to latest
AlexanderSehr Jan 23, 2024
4cd0a6f
Merge branch 'Azure:main' into main
AlexanderSehr Jan 26, 2024
01f3a38
Merged latest main
AlexanderSehr Jan 26, 2024
18c794a
Merge branch 'Azure:main' into users/alsehr/testCleanup
AlexanderSehr Jan 26, 2024
732a605
Merge branch 'main' into users/alsehr/testCleanup
AlexanderSehr Jan 29, 2024
c0105fe
Merge branch 'Azure:main' into main
AlexanderSehr Jan 29, 2024
c7d09f2
Merge branch 'main' into users/alsehr/testCleanup
AlexanderSehr Jan 29, 2024
bea9408
Merge branch 'users/alsehr/testCleanup' of https://github.com/Alexand…
AlexanderSehr Jan 29, 2024
9d063ce
Refereshed docs
AlexanderSehr Jan 29, 2024
db61282
Merge branch 'main' into users/alsehr/testCleanup
AlexanderSehr Jan 29, 2024
4ec79f8
Merge branch 'Azure:main' into main
AlexanderSehr Jan 29, 2024
c26b307
Merge branches 'users/alsehr/testCleanup' and 'main' of https://githu…
AlexanderSehr Jan 29, 2024
e3759a8
Merge branch 'Azure:main' into main
AlexanderSehr Feb 2, 2024
86869a1
Merge branch 'main' of https://github.com/AlexanderSehr/bicep-registr…
AlexanderSehr Feb 2, 2024
f8da6b9
Merge branch 'Azure:main' into main
AlexanderSehr Feb 4, 2024
ece4faa
Merge branch 'main' of https://github.com/AlexanderSehr/bicep-registr…
AlexanderSehr Feb 4, 2024
8884290
Merge branch 'Azure:main' into main
AlexanderSehr Feb 9, 2024
6ed614f
Merge branch 'Azure:main' into main
AlexanderSehr Feb 10, 2024
e307d2a
Merge branch 'Azure:main' into main
AlexanderSehr Feb 11, 2024
96589bb
Merge branch 'Azure:main' into main
AlexanderSehr Feb 12, 2024
75ade55
Merge branch 'Azure:main' into main
AlexanderSehr Feb 13, 2024
56e7afb
Merge branch 'Azure:main' into main
AlexanderSehr Feb 21, 2024
f89b946
Merge branch 'Azure:main' into main
AlexanderSehr Feb 21, 2024
c861111
Merge branch 'Azure:main' into main
AlexanderSehr Feb 22, 2024
9511716
Merge branch 'Azure:main' into main
AlexanderSehr Feb 26, 2024
f28816d
Merge branch 'Azure:main' into main
AlexanderSehr Feb 27, 2024
79b4e78
Merge branch 'Azure:main' into main
AlexanderSehr Mar 5, 2024
31a3f76
Merge branch 'Azure:main' into main
AlexanderSehr Mar 7, 2024
e6975de
Merge branch 'Azure:main' into main
AlexanderSehr Mar 9, 2024
005581f
Update to latest
AlexanderSehr Mar 9, 2024
15a7ed5
Update to latest
AlexanderSehr Mar 9, 2024
922fd79
Update to latest
AlexanderSehr Mar 9, 2024
d861c45
Update to latest
AlexanderSehr Mar 9, 2024
a4d71e7
Merge branch 'main' into users/alsehr/e2eTestCheck
AlexanderSehr Mar 10, 2024
033baab
Merge branch 'Azure:main' into main
AlexanderSehr Mar 11, 2024
c46abd0
Merge branch 'main' of https://github.com/AlexanderSehr/bicep-registr…
AlexanderSehr Mar 11, 2024
5b35a3f
Merge branch 'Azure:main' into main
AlexanderSehr Mar 13, 2024
0012def
Merge branch 'Azure:main' into main
AlexanderSehr Mar 17, 2024
13f0450
Merge branch 'Azure:main' into main
AlexanderSehr Mar 21, 2024
4dcee53
Merge branch 'Azure:main' into main
AlexanderSehr Mar 23, 2024
55fa854
First commit
AlexanderSehr Mar 23, 2024
9756ff9
Added git check, and provoke exception if tag creation fails
AlexanderSehr Mar 23, 2024
8572264
Introduced dummy change for testing
AlexanderSehr Mar 23, 2024
9c469ae
Update to latest
AlexanderSehr Mar 23, 2024
a044728
Update to latest
AlexanderSehr Mar 23, 2024
b21a8a4
Update to latest
AlexanderSehr Mar 23, 2024
2810826
Update to latest
AlexanderSehr Mar 23, 2024
c2db81d
Update to latest
AlexanderSehr Mar 23, 2024
dc9bf95
Update to latest
AlexanderSehr Mar 23, 2024
a774a89
Update to latest
AlexanderSehr Mar 23, 2024
880e0bb
Update to latest
AlexanderSehr Mar 23, 2024
74f4148
Update to latest
AlexanderSehr Mar 23, 2024
d552f67
Update to latest
AlexanderSehr Mar 23, 2024
cc1ca1b
Update to latest
AlexanderSehr Mar 23, 2024
642671d
Update to latest
AlexanderSehr Mar 23, 2024
b29144e
Update to latest
AlexanderSehr Mar 23, 2024
329946f
Update to latest
AlexanderSehr Mar 23, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/actions/templates/avm-publishModule/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,10 @@ runs:
Write-Verbose ($functionInput | ConvertTo-Json | Out-String) -Verbose

if($publishOutputs = Publish-ModuleFromPathToPBR @functionInput -Verbose) {
Write-Output ('{0}={1}' -f 'version', $publishOutputs.version) >> $env:GITHUB_OUTPUT
Write-Output ('{0}={1}' -f 'publishedModuleName', $publishOutputs.publishedModuleName) >> $env:GITHUB_OUTPUT
$publishOutputs.Keys | Foreach-Object {
Write-Verbose ('Passing pipeline variable [{0}] with value [{1}]' -f $_, $publishOutputs.$_) -Verbose
Write-Output ('{0}={1}' -f $_, $publishOutputs.$_) >> $env:GITHUB_OUTPUT
}
}

Write-Output '::endgroup::'
Expand All @@ -88,6 +90,7 @@ runs:
$functionInput = @{
Version = "${{ steps.publish_step.outputs.version }}"
PublishedModuleName = "${{ steps.publish_step.outputs.publishedModuleName }}"
GitTagName = "${{ steps.publish_step.outputs.gitTagName }}"
}

Write-Verbose "Invoke function with" -Verbose
Expand Down
18 changes: 17 additions & 1 deletion avm/utilities/pipelines/publish/Confirm-ModuleIsPublished.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ Mandatory. The version of the module to check for. For example: '0.2.0'
.PARAMETER PublishedModuleName
Mandatory. The path of the module to check for. For example: 'avm/res/key-vault/vault'

.PARAMETER GitTagName
Mandatory. The tag name of the module's git tag to check for. For example: 'avm/res/event-hub/namespace/0.2.0'

.EXAMPLE
Confirm-ModuleIsPublished -Version '0.2.0' -PublishedModuleName 'avm/res/key-vault/vault' -Verbose

Expand All @@ -24,7 +27,10 @@ function Confirm-ModuleIsPublished {
[string] $Version,

[Parameter(Mandatory)]
[string] $PublishedModuleName
[string] $PublishedModuleName,

[Parameter(Mandatory)]
[string] $GitTagName
)

$baseUrl = 'https://mcr.microsoft.com/v2'
Expand All @@ -36,6 +42,16 @@ function Confirm-ModuleIsPublished {
$retry_seconds = 60
$index = 0

#######################################
AlexanderSehr marked this conversation as resolved.
Show resolved Hide resolved
## Confirm module tag is created ##
#######################################
$existingTag = git ls-remote --tags origin $GitTagName
if (-not $existingTag) {
throw "Tag [$GitTagName] was not successfully created. Please review."
} else {
Write-Verbose "Passed: Found Git tag [$GitTagName]" -Verbose
}

#####################################
## Confirm module is published ##
#####################################
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,10 @@ function Publish-ModuleFromPathToPBR {
$publishedModuleName = Get-BRMRepositoryName -TemplateFilePath $TemplateFilePath

# 4.Create release tag
$tagName = New-ModuleReleaseTag -ModuleFolderPath $moduleFolderPath -TargetVersion $targetVersion
$gitTagName = New-ModuleReleaseTag -ModuleFolderPath $moduleFolderPath -TargetVersion $targetVersion

# 5. Get the documentation link
$documentationUri = Get-ModuleReadmeLink -TagName $tagName -ModuleFolderPath $moduleFolderPath
$documentationUri = Get-ModuleReadmeLink -TagName $gitTagName -ModuleFolderPath $moduleFolderPath

# 6. Replace telemetry version value (in Bicep)
$tokenConfiguration = @{
Expand Down Expand Up @@ -108,5 +108,6 @@ function Publish-ModuleFromPathToPBR {
return @{
version = $targetVersion
publishedModuleName = $publishedModuleName
gitTagName = $gitTagName
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,16 @@ function New-ModuleReleaseTag {
$wellFormattedTag = git check-ref-format --normalize $tagName
if (-not $wellFormattedTag) {
throw "Tag [$tagName] is not well formatted."
# TODO: Handle exception if tag not formatted correctly
}

# 3 Check tag not already existing
$existingTag = git ls-remote --tags origin $tagName
if ($existingTag) {
throw "Tag [$tagName] already exists"
# TODO: Handle exception if tag already existing
Write-Verbose "Tag [$tagName] already exists" -Verbose
return $tagName
}


# 3 Create local tag
Write-Verbose "Creating release tag: [$tagName]" -Verbose
git tag $tagName
Expand All @@ -56,6 +56,10 @@ function New-ModuleReleaseTag {
Write-Verbose "Publishing release tag: [$tagName]" -Verbose
git push origin $tagName

if ($LASTEXITCODE -ne 0) {
throw 'Git Tag creation failed. Please review error log.'
}

# 5 Return tag
return $tagName
}