forked from SFDO-Tooling/CumulusCI
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Feature/build queuing #3
Open
SalesforceRocks
wants to merge
118
commits into
marcalbaladejo:master
Choose a base branch
from
SalesforceRocks:feature/build_queuing
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.
Open
Feature/build queuing #3
SalesforceRocks
wants to merge
118
commits into
marcalbaladejo:master
from
SalesforceRocks:feature/build_queuing
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
version to avoid query timeouts with many subscribers
body that was not auto-generated release notes
Fixed several small issues with package.py and upgraded version.properties to 37 (Summer ' 16)
…/refactor-release-notes Feature/refactor release notes
…espace conflicts. Added get_tags.py to get all tags from a github repository (uses github standard library). Added github_tests.py to test this. Added some skeleton work to build.xml to allow for 'queued' builds. Added FlexiPage support to package.py on request of Sage
…tags for storing status. Added codeship support to cumulusCI CLI
…g-info files. Added them to .gitignore. Made ci and its subdirectories a separate pip module so cumulusci CLI can be installed including the new commands. Started work on refactoring the bind_org command
… a lot of copy and paste code. Tested it IRL. Added the commands to the CLI
…ue pairs (orgname/build_name) stored in the root in a configurable branch on github. The storage is configurable so it could use something different than github or something different than a file but currently the only implementation is Github with a file.
… a click.echo message every time the bind command pulls while it is waiting (to prevent failure on Codeship). Fixed some tests to adhere to the improvements.
…an org is properly released after a build fails
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.
A problem that many organizations face who do many pushes to feature branches with CumulusCI is that there is only one 'feature org'. Trying to build two or more builds of feature branches at the same time, results in collisions and an indeterminate state of the 'feature org'.
The build queuing feature solves this for CumulusCI 1.0. With the CLI command ci bind_org a build process running on a VM reserves (or 'binds') the 'feature org' (or any other org) to itself by setting a lightweight tag in Github. With the CLI command ci release_org a build process releases the 'feature org'.
When a build process tries to bind an already bound org, an OrgBoundException is thrown and the build fails OR the build process waits a definable amount of time and retries (again it's possible to define the number of retries).
The build.xml has been extended for the deploy_CI command with the bind_org and release_org commands.
The architecture is based on only standard python libraries (github mainly) and is thoroughly tested (unit testing provided).