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

59 lines
1.9 KiB
Markdown
Raw Normal View History

2020-04-22 09:08:58 -07:00
# 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.
Pull Request actions are determined by the author's association to the GitHub project. Levels are defined https://developer.github.com/v4/enum/commentauthorassociation/.
### When a PR is opened by COLLABORATOR
- check that linting is successful
- check that the code builds
- check that PR tests pass
2020-04-22 09:08:58 -07:00
### When a PR is opened by NONE
- check that linting is successful
- check that the code builds
2020-04-22 09:08:58 -07:00
### Code changes to the master branch
These changes are identified by modifications to files under the `src` directory or files matching `^.*\.(gradle|toml)$`
2020-04-22 09:08:58 -07:00
- build the project
- save artifacts to GCP bucket with short git hash, and `master`
- update code documentation via `docs` gradle target
2020-04-22 09:08:58 -07:00
### New tag is created
- build the project, save artifacts to GCP bucket with tag
- push artifacts to bintray
2020-04-22 09:08:58 -07:00
- send notification to Slack channel
## Time based changes
Periodic continous integration tasks
2020-04-22 09:08:58 -07:00
### Nightly
- run integration tests
- send notifications for failed builds or failed nightly integrations
## Targets
2020-04-22 09:08:58 -07:00
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
2020-04-22 09:08:58 -07:00
- **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