ADR: Process for publishing the AZ provider types (alpha) #11882
Locked
asilverman
started this conversation in
Architectural Decision Records (ADRs)
Replies: 12 comments 12 replies
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been hidden.
This comment has been minimized.
This comment has been minimized.
This comment has been hidden.
This comment has been hidden.
This comment has been minimized.
This comment has been minimized.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
ADR-11882: Process for publishing the az provider types (alpha)
Context
This document aims to formally describe an initial process for publishing the az resource types provider packages
as OCI artifacts in the Bicep registry so they can be dynamically loaded as described in the proposal
#10662 (previously accepted by the Bicep maintainers) for the alpha milestone.
Current State
The current state has two github workflows:
main
. Builds thegenerator
and its dependencies and publishes a NuGetpackage with the Azure resource type definitions.
main
branch from the
azure/azure-rest-api-specs
repo, runs the generation script on the snapshot and commits the result to the/generated
folder in theautogenerate
branch orazure/bicep-types-az/tree/autogenerate-<git-commit-ish>
branches depending on the trigger (a '<git-commit-ish>
' isa truncated commit sha256 digest)
When a new version of the Bicep is close to being released, the person cutting a release performs the following steps:
Chose to either manually merge the autogenerate branch into
main
or manually trigger the update-types.ymlworkflow to update the
/generated
folder. This is typically reviewed, but not in great detail.(hard to review 600+ automated file changes!)
This will update the definitions stored in
/generated
in themain
branch and trigger the build.yml workflow which in turn will publish a NuGet package with a bumped version.
Verify (manually) that a new NuGet package was published
Update the NuGet package reference in the
Bicep.Core.csproj
file in theazure/bicep
repo to the new packageversion
Proceed with the release process for
azure/bicep
The current process allow us to manually inspect and catch any odd regression before impacting any customers
(e.g. the time where we accidentally deleted all of the types for
Microsoft.Compute
)Desired State (For Alpha)
az-types-provider-package
OCI artifact each time theres a new commit to theazure/bicep-types-az/tree/main/generated folder.
Azure/bicep-types-az
and the OCI registry artifact with a version0.0.X-alpha
whereX
is corresponding tothe topological distance, measured as count of commits made on the folder from the commit that implements the new
workflow (
0.0.1-alpha
).Out of Scope
the alpha milestone, the long term solution will be determined in Proposal: Versioning of provider artifacts and provider resources #11894.
Proposed Changes
A new workflow
publish-az-provider-to-registry.yml
will be created that triggers on push tomain
, the workflow willpublish an OCI artifact to the bicep public registry (syndicated with MCR).
The workflow will:
/generated
folder with thestate of the previous version. If there are no changes, the workflow will exit.
X-alpha
version by one.Azure/bicep-types-az
repo..json
files in the/generated
folder into a.tgz
fileaz-types-provider-package
artifact to the Bicep public registry under the following prefix:bicep/providers
(e.g.mcr.microsoft.com/bicep/providers/az:0.0.X-alpha
). The tag for the OCI artifact will match the commit tag.The OCI types provider artifact structure
A resource types provider artifact MUST conform to the following requirements:
Validation on the changes
Decision
Consequences
0.0.X-alpha
as a valid syntaxBeta Was this translation helpful? Give feedback.
All reactions