Skip to main content

Continuous Integration (CI)

This repository uses CircleCI and Netlify for continuous integration.

Deploy Previews

Netlify Deploy previews are generated for every pull request. They allow pull request authors and reviewers to "Preview" the OHIF Viewer as if the changes had been merged.

Deploy previews can be configured by modifying the netlify.toml file in the root of the repository. Some additional scripts/assets for netlify are included in the root .netlify directory.

Workflows

CircleCI Workflows are a set of rules for defining a collection of jobs and their run order. They are self-documenting and their configuration can be found in our CircleCI configuration file: .circleci/config.yml.

Workflow: PR_CHECKS

The PR_CHECKS workflow (Pull Request Checks) runs our automated unit and end-to-end tests for every code check-in. These tests must all pass before code can be merged to our master branch.

PR_CHECKS

Workflow: PR_OPTIONAL_DOCKER_PUBLISH

The PR_OPTIONAL_DOCKER_PUBLISH workflow allows for "manual approval" to publish the pull request as a tagged docker image. This is helpful when changes need to be tested with the Google Adapter before merging to master.

publish

NOTE: This workflow will fail unless it's for a branch on our upstream repository. If you need this functionality, but the branch is from a fork, merge the changes to a short-lived feature/ branch on upstream

Workflow: DEPLOY

The DEPLOY workflow deploys the OHIF Viewer when changes are merged to master. It uses the Netlify CLI to deploy assets created as part of the repository's PWA Build process (yarn run build). The workflow allows for "Manual Approval" to promote the build to STAGING and PRODUCTION environments.

deploy

EnvironmentDescriptionURL
DevelopmentAlways reflects latest changes on master branch.Netlify / OHIF
StagingFor manual testing before promotion to prod. Keeps development workflow unblocked.Netlify / OHIF
ProductionStable, tested, updated less frequently.Netlify / OHIF

Workflow: RELEASE

The RELEASE workflow publishes our npm packages, updated documentation, and docker image when changes are merged to master. Lerna and "Semantic Commit Syntax" are used to independently version and publish the many packages in our monorepository. If a new version is cut/released, a Docker image is created. Documentation is generated with gitbook and pushed to our gh-pages branch. GitHub hosts the gh-pages branch with GitHub Pages.

release

HOTFIX

Not yet implemented