Continuous Integration

Opi Danihelka

Continuous Integration (CI) is the process of automating the build and testing of code every time a team member commits changes to version control.

Continuous Integration

  • Rapid feedback and defects detection
  • Prevents integration problems (merge conflicts, deployment issues)
  • Multiple releases per day
  • Continuous Delivery / Continuous Deployment
  • "DevOps" role
  • Keep master branch clean (Gitflow)
  • Automate the build
  • Build is self testing
  • Build every PR
  • Keep the build fast
  • Test in clone of production environment
  • Everyone can see build result
  • Automated Deployment

CI Best practices

DEMO

circle.yml

machine:
  environment:
    NODE_ENV: test
  node:
    version: 6.9.1

dependencies:
  cache_directories:
    - node_modules

test:
  override:
    - npm test
    - npm run eslint

app.json

{
  "name": "actum-ci-demo",
  "scripts": {
  },
  "env": {
  },
  "formation": {
  },
  "addons": [

  ],
  "buildpacks": [

  ]
}

Questions?

Continuous Integration

By Opi Danihelka

Continuous Integration

  • 39