ZcashLightClientKit/docs/ci.md

1.7 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.

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
root `*.xcworkspace/**
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)