-
Notifications
You must be signed in to change notification settings - Fork 8
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!: parallel solution merges #91
Draft
ewingjm
wants to merge
32
commits into
master
Choose a base branch
from
feat/parallel-solution-merges
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit enables parallel solution merges agnostic of CI/CD platform. There are further changes required to the devhub_DevelopmentHub_AzureDevOps solution and the sample Azure DevOps pipeline(s) to provide an Azure DevOps implementation. This commit also includes a significant amount of breaking changes intended to make the Development Hub more versatile and extensible in future. BREAKING CHANGE: The following breaking changes are included in this commit: - The application registration client credentials will no longer be stored in plaintext within the Development Hub per environment as this can be replaced by a single secure service connection on Azure DevOps (or equivalent in other CI/CD platforms in future) - Development solution will no longer be archived on the solution merge records after merging as pipeline artifacts is more suitable for this task - Some status reason transitions newly added between existing statuses - Some new required fields when creating a solution and environment (merge strategy and lifetime)
This now happens on status update of a solution merge to 'Merged' rather than as part of the merge flow. Previously this flow was part of the AzureDevOps solution.
This avoids having to layer customisations on top of the solution merge status code. It's also a more appropriate place for that status reason as 'Awaiting PR Merge' is not conceptually tied to Azure DevOps in any way.
This is required to be able to provision extract environments.
This flow should only mark an environment pending delete if the solution merge is parallel. However, this flow was running for sequential solution merges as well.
One pipeline per project would become unwieldly for projects with many repositories. It's also not possible to pass a template at run-time that exists in another repository. This means that a project-level provision pipeline would need to contain all the jobs and steps for every solution in the project.
A missing underscore in a cloud flow parameter caused this functionality to fail.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
Closes #88.
Approach
Ephemeral extract environments will be created and deleted automatically if a solution has a merge strategy of 'Parallel'. A merge strategy of 'Sequential' continues to behave in the same way as previously. A parallel merge strategy requires solution versions to be set as part of a CI pipeline.
This pull request includes a number of improvements and breaking changes.
TODOs