Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
1 contributor

Users who have contributed to this file

118 lines (91 sloc) 1.96 KB
author title date
Stefan Schwarz @foosinn
Continuous Integration
10.07.2019

whoami

  • Sysadmin at Thomann Bits & Beats
  • Admin at Hackerspace Bamberg
  • Lead guitar at Varus @varusband

Drone?

  • CI and CD System
  • Open Source & Enterprise variant
  • 1.0.0 since March
  • Container based CI
  • Plugin infrastructure

Usage

  • Pipline configuration in repository

  • Example:

    kind: pipeline
    name: default
    
    - name: backend
      image: golang
      commands:
      - go build
      - go test

Goals

  • Staging + Production environment based on commit / git tag
  • Rollbacks in production
  • No secrets in Docker images
  • No development dependencies in containers
  • Local testing

Demo Time

What could possibly go wrong?

Things to note

  • Include git sha in deployment on pod
    • required for stating
  • Include secret/configmap sha in deployment on pod
    • required for secret / configmap changes
  • This example is not production ready (namespace separation / helm security / secrets)

Things to come

  • Container update management
    • security issues
    • os dependencies
    • application dependencies

Related Software

Monorepo Support

Matrix Builds

```Dockerfile ARG VERSION=10 FROM node:$VERSION-alpine ENV LANG=C.UTF-8

ARG BUILD_DEPS=clean

RUN true
&& test $BUILD_DEPS == "build"
&& apk --no-cache build-base
|| true

</div>
<div style="font-size: .8em; width: 42%" >
```yaml
multiply:
  VERSION:
    - 10
    - 8
    - 6
  BUILD_DEPS:
    - ''
    - build
images/node:10
images/node:10-build	
images/node:6	
images/node:6-build	
images/node:8	
images/node:8-build	
You can’t perform that action at this time.