Our group took huge step when we convinced our leadership to empower us to create this technical blog and share our technology journeys, learnings, and innovation with the community back in September 2020. Two years later, we finally managed to dot the i's
and cross the t's
and publish our second-generation application-type blueprints.
It is hopefully the splash down of a long and innovative collaboration to improve our (community) use of Azure Pipelines.
Peruse our why bother and what are our nightmares and options? pipeline series for the complete story.
“Constantly think about how you could be doing things better.” - Elon Musk
Discussions
You can use the Discussions feature to collaborate with our team and/or the rest of the community. Please keep discussions focused on the application-type blueprints, communicate clearly, be open-minded, respectful, and empathetic.
NOTE - All discussions and comments are moderated. Users who do not adhere to the GitHub Acceptable Use Policies will be blocked from our organization.
- Vibrant collaboration (over black holes and silos)
- Consistent, standardized, and secure continuous integration (CI) and delivery (CD) pipelines
- Empower software engineers with self-service automation
- Take advantage of every ounce of YAML Azure Pipelines features
Repositories
We have published a total of eight (8) repositories, consisting of five (5) sample repositories and three (3) application-type blueprint core repositories.
Samples
The five (5) sample repositories are used by our self-service automation to extract an application-type sample and inject it into the users repository. We reduced the self-service cycle-time to less than 15 seconds ... a success story that we will cover in an upcoming self-service automation post.
- AzureDevOps.Automation.Pipeline.Sample.azure-function
- AzureDevOps.Automation.Pipeline.Sample.generic-multiple-jobs
- AzureDevOps.Automation.Pipeline.Sample.generic-single-job
- AzureDevOps.Automation.Pipeline.Sample.nuget-package
- AzureDevOps.Automation.Pipeline.Sample.universal-artifact
Core
The three (3) core repositories represent the heart of our blueprint-based Azure Pipelines.
- AzureDevOps.Automation.Pipeline.Configuration.v2 - Contains a configuration file for each solution using our blueprints, organized in a flat
deploy/<portfolio>/<product>-config.yml
hierarchy. The configuration files are loaded and injected when the pipelines are queued. - AzureDevOps.Automation.Pipeline.Templates.v2 - Application-type blueprint and other templates. See meet our second-generation app-type blueprints for details.
- AzureDevOps.Automation.Pipeline.Toolbox.v2 - Scripts and config files that are loaded by the
boot-strap.yml
template, using thecheckout:
feature. See two ways to share your toolbox with your pipelines for details.
For more information on the history and a peek under the hood of the blueprints, please peruse our technical blog pipelines series and anything that is tagged with pipelines.
Some of the templates contain a __TODO_<ACTION>_
placeholders to hide our internal implementation but maintain the blueprint template dependencies and integrity. You will need to search for __TODO_
and implement these STUBBED
templates yourself. Contact our team using the Discussions if you have any questions.
Getting Started
- Fork the repositories if you intend to make changes.
- Create or use a common engineering Azure DevOps project.
- Clone the repositories to your Azure DevOps project.
- Search for
__TODO_
placeholders in all repositories and adjust to match your Azure DevOps Project(s) and services. - Remember to contribute your changes back using a pull request.
How to contribute
As mentioned, collaborate with us using the Discussions feature and submit your blueprints changes through pull requests which will be considered, reviewed, integrated, and synchronized by our common engineering open source team of passionate engineers.
May the collaboration, fun, and innovation begin!