Skip to content

Continuous Integration & Testing #45

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

arcticicestudio
Copy link
Contributor

Resolves #44

Circle CI (1) is one of the most popular and proven CI providers that
allows to automate pipelines from commit to deploy with a quick, safe,
and scaled process. They support many languages and provide great and
unique features like orbs (2), job orchestration, powerful caching, SSH
or local builds for easy debugging and first-class Docker and GitHub
integration (apps, hooks, etc.) support.
The extensive and well-written documentations (3) make it easy to set
up and configure it for the usage in projects.
Circle CI has been used for almost all open source projects of Arctic
Ice Studio and will be used as primary CI provider for _Nord Docs_ too.

Before starting to run builds, Circle CI must be authorized on a per
project basis to access the code on GitHub. After the process has been
authorized (GitHub OAuth) the project will be added to the dashboard and
required webhooks to listen for new Git events will be automatically set
up. See the documentation about how to get started and add a project to
the dashboard (4).
NOTE: The latest config 2.1 features (5) are currently still in Beta
Preview and must be enabled explicitly for each project via Settings ->
Advanced Settings -> "Enable build processing (preview)"! See the
"Enabling Build Processing" (6) documentation for more details.

The Docker image of the CI container (7) will be the currently latest
stable Node.js (8) LTS version `10.x.x` and the previous LTS version
`8`. The `-browsers-legacy` tag suffix (9) can
be used later on for end-to-end tests (GH-38) with Cypress (10). Next to
Node.js these images currently include Chrome, Firefox, Java 8, and
PhantomJS.

To gather and upload all created coverage reports the
"codecov/codecov" (11) Circle CI orb (12) which provides the `upload`
command for easy integration into jobs and workflows.

References:
  (1) https://circleci.com
  (2) https://circleci.com/orbs
  (3) https://circleci.com/docs
  (4) https://circleci.com/docs/2.0/first-steps
  (5) https://github.com/CircleCI-Public/config-preview-sdk/blob/master/docs/README.md
  (6) https://circleci.com/docs/2.0/build-processing
  (7) https://hub.docker.com/r/circleci/node/tags
  (8) https://nodejs.org
  (9) https://circleci.com/docs/2.0/circleci-images/#language-image-variants
  (10) https://www.cypress.io
  (11) https://circleci.com/orbs/registry/orb/codecov/codecov
  (12) https://circleci.com/docs/2.0/orb-intro

GH-44
Jest is able to generate JUnit formatted reports using the
jest-junit (1) package. It has been defined in the main configuration
file as additional reporter next to the `default` report format.
See Circle CI's documentation about to how to collect test data (2) for
more details about setups with Jest.

References:
  (1) https://github.com/codecov/jest-junit
  (2) https://circleci.com/docs/2.0/collect-test-data/#jest

GH-44
It sets the default branch from "master" to "develop" and enables
partials analysis which is available through Codecov for JavaScript
sources.

GH-44
@arcticicestudio arcticicestudio merged commit 2d0000e into develop Nov 25, 2018
@arcticicestudio arcticicestudio deleted the feature/gh-44-continuous-integration-and-testing branch November 25, 2018 14:24
@arcticicestudio arcticicestudio removed their assignment Nov 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants