ddsl

Docker Declarative Specific Language

ddsl lets you declare how your docker images are built and what checks (test, linter, etc) need be run in your images.

version: 1

builds:
  - name: feature-branch
    type: docker
    context: .
    file: docker/Dockerfile
    tags:
      - bilby91/ddsl:$CI_SHA1
    push: true
    cache_from:
      - bilby91/ddsl:latest
  - name: master-branch
    type: docker
    context: .
    file: docker/Dockerfile
    tags:
      - bilby91/ddsl:$CI_SHA1
      - bilby91/ddsl:latest
    push: true
    cache_from:
      - bilby91/ddsl:latest
  - name: dev
    type: docker-compose
    file: docker/docker-compose.yml

runs:
  - name: bash
    type: docker-compose
    file: docker/docker-compose.yml
    service: ddsl
    cmd: /bin/bash
  - name: test-ci
    type: docker
    image: bilby91/ddsl:$CI_SHA1
    cmd: bundle exec rspec spec
  - name: test
    type: docker
    image: bilby91/ddsl:latest
    cmd: bundle exec rspec spec
  - name: lint-ci
    type: docker
    image: bilby91/ddsl:$CI_SHA1
    cmd: rubocop .
  - name: lint
    type: docker
    image: bilby91/ddsl:latest
    cmd: rubocop .

Contnious Integration

Provider Status
GitLab CI
Circle CI CircleCI
Travis CI Build Status

Dependencies

  • ruby
  • docker
  • docker-compose

TODO

  • [X] Docker Compose support
  • [X] Variable interpolation
  • [X] Add CircleCI
  • [X] Add GitLabCI
  • [X] Add TravisCI
  • [ ] Registries?
  • [ ] Variable sharing/reusing
  • [ ] External secret proviers ? (KMS, Google?)

Contact