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!: parallel solution merges #91

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from

Conversation

ewingjm
Copy link
Owner

@ewingjm ewingjm commented Sep 7, 2021

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

  • Automated test coverage for new code
  • Documentation updated (if required)
  • Build and tests successful

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.
@ewingjm ewingjm added the enhancement New feature or request label Sep 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Master environment per solution merge
1 participant