zcash-android-wallet-sdk/docs/ci.md

1.6 KiB

Continuous Integration

In order to ensure code changes comply with the target integrations, the following policies should be observed.

Changes to the GitHub project

The master branch is the git repositories default branch.

Jobs are managed by PR labels. The following labels are actionable.

label targets
safe-to-ci ciBuild, ciLintPr

Code changes to the master branch

These changes are identified by modifications to files under the src directory or files matching ^.*\.(gradle|toml)$

  • build the project
  • save artifacts to GCP bucket with short git hash, and master
  • update code documentation via docs gradle target

New tag is created

  • build the project, save artifacts to GCP bucket with tag
  • push artifacts to bintray
  • send notification to Slack channel

Time based changes

Periodic continous integration tasks

Nightly

  • run integration tests
  • send notifications for failed builds or failed nightly integrations

Targets

Run gradle targets with the following command.
Note: it is recommended to NOT install gradle because the wrapper command (gradlew) takes care of that automatically.

./gradlew <target>

Where <target> is one of the following

  • ciBuild : build the project and produce the AAR artifact under build/outputs/aar
  • ciDeploy : deploy the AAR artifact to bintray. This will invoke ciBuild, if necessary.
  • ciLintPr : lint the code in response to a PR to verify codestyle and formatting.
  • ciTestPr : run the basic PR test suite. This will invoke ciBuild, if necessary.
  • ciTestNightly : run the full nightly integration test suite