Skip to main content

Build and release tools for Salesforce developers

Project description

===============================
CumulusCI
===============================

.. image:: https://img.shields.io/pypi/v/cumulusci.svg
:target: https://pypi.python.org/pypi/cumulusci
.. image:: https://readthedocs.org/projects/cumulusci/badge/?version=latest
:target: https://cumulusci.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/shield.svg
:target: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/
:alt: Updates

CumulusCI is a command line tool belt and set of reusable Python classes useful in the development and release process of building a Salesforce Managed Package application.

Key Features
------------

* Out of the box, CumulusCI provides a complete best practice development and release process based on the processes used by Salesforce.org to build and release managed packages to thousands of users
* Flexible and pluggable system for running tasks (single actions) and flows (sequences of tasks)
* OAuth based org keychain allowing easy connection to Salesforce orgs and stored in local files using AES encryption

Requirements
------------

* Python 2.7.x
* stdbuf - for passing through stdout from Ant
* Ant - for using some task commands

Installation
------------

* pip install cumulusci

Quick Start
-----------

This section provide a brief example of the commands you'd use to start a new project once you have CumulusCI installed

$ cd <Your_Local_Repo>
$ cumulusci2 project init
project_name: MyProject
$ cat cumulusci.yml
project:
name: MyProject
$ cumulusci2 org config_connected_app
client_id: 12345890
client_secret:
$ cumulusci2 org connect dev
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
$ cumulusci2 org info dev
*** Displays the OAuth configuration info for the org named "dev"
$ cumulusci2 org browser dev
*** Opens a browser tab to the org using OAuth to bypass login
$ cumulusci2 org connect --sandbox test
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
test
$ cumulusci2 task list
*** List all available tasks
deploy: Deploys the src directory to the target Salesforce org
$ cumulusci2 task run --org dev deploy
*** Runs the "deploy" task against the "dev" org
$ cumulusci2 flow list
*** List all available flows
deploy_dev_org: Runs a complete deployment against a dev org including dependencies but not running tests
$ cumulusci2 flow run --org test deploy_dev_org
*** Runs the "dev_org" flow against the "test" org


=======
History
=======

2.0.0-alpha6 (2016-10-24)
------------------

* Moved the build and ci directories back to the root so 2.0 is backwards compatible with 1.0
* Allow override of keychain class via CUMULUSCI_KEYCHAIN_CLASS env var
* New keychain class cumulusci.core.keychain.EnvironmentProjectKeychain for storing org credentials as json in environment variables
* Tasks now support the salesforce_task option for requiring a Salesforce org
* The new BaseSalesforceToolingApi task wraps simple-salesforce for building tasks that interact with the Tooling API
* cumulusci org default <name>
* Set a default org for tasks and flows
* No longer require passing org name in task run and flow run
* --unset option flag unsets current default
* cumulusci org list shows a * next to the default org
* BaseAntTask split out into AntTask and SalesforceAntTask
* cumulusci.tasks.metadata.package.UpdatePackageXml:
* Pure python based package.xml generation controlled by metadata_map.yml for mapping in new types
* Wired into the update_package_xml task instead of the old ant target
* 130 unit tests and counting, and our test suite now exceeds 1 second!

2.0.0-alpha5 (2016-10-21)
------------------

* Update README

2.0.0-alpha4 (2016-10-21)
------------------

* Fix imports in tasks/ant.py

2.0.0-alpha3 (2016-10-21)
------------------

* Added yaml files to the MANIFEST.in for inclusion in the egg
* Fixed keychain import in cumulusci.yml

2.0.0-alpha2 (2016-10-21)
------------------

* Added additional python package requirements to setup.py for automatic installation of dependencies

2.0.0-alpha1 (2016-10-21)
------------------

* First release on PyPI.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cumulusci-2.0.0a6.tar.gz (18.6 MB view details)

Uploaded Source

File details

Details for the file cumulusci-2.0.0a6.tar.gz.

File metadata

  • Download URL: cumulusci-2.0.0a6.tar.gz
  • Upload date:
  • Size: 18.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for cumulusci-2.0.0a6.tar.gz
Algorithm Hash digest
SHA256 2cccae04001290fcf6a1f0dbbc37143bd59a5757b4390b436e37cb32107b3964
MD5 173cd412ee794932c7ab719c84133d2c
BLAKE2b-256 e2ce57c2b6ed12fdfee318a3b46425b649a20b61778b8733c457779e76542cdb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page