ZcashLightClientKit/docs/ci.md

57 lines
1.7 KiB
Markdown

# 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
### When a PR is opened by NONE
- check that linting is successful
- check that the code builds
### Code changes to the master branch
These changes are identified by modifications to files under the following directories
| Directory | files |
| ------------- | ------------- |
| Scripts | `*.sh` |
| `rust/src` | `*.rs` |
| ZcashLightClientKit | `*.swift | *.stencil` |
| root | `*.xcworkspace/** | *.xcodeproj | *.toml` |
| ZcashLightClientKitTests | `*.swift` |
| `Example/ZcashLightClientSample/ZcashLightClientSample` | `*.swift` |
- build the project
- update code documentation via `jazzy --podspec ZcashLightClientKit.podspec`
### New tag MAJOR.MIDDLE.MINOR{-betaX} is created
- build the project
- run tests
- run `pod lib lint --skip-tests --allow-warnings && pod trunk push --skip-tests --allow-warnings` to create pod version
## Time based changes
Periodic continous integration tasks
### Nightly
- run integration tests
- send notifications for failed builds or failed nightly integrations
## Targets
- **ZcashLightClientSample** : build and run example demo app
- **ZcashLightClientKit-Unit-Tests** : build and test unit and integration tests (darksidewalletd required)