Neuigkeiten von trion.
Immer gut informiert.

Blog-Archiv 2021

Drone CI global environment Variable 28 Jan

Geschrieben von Thomas Kruse am 28. Januar 2021

Bei Drone CI handelt es sich um einen OpenSource continuous integration (CI) Server. Dabei setzt Drone CI auf die Ausführung des Builds mittels Containern. Typischerweise werden dabei Docker oder Kubernetes als Container Plattform eingesetzt.

Eine Buildpipeline wird in YAML definiert, dabei können sowohl services definiert werden, die im Build verwendet werden, als auch persistente volumes und natürlich die Buildabläufe als steps.

Drone CI Kubernetes Pipeline Beispiel
kind: pipeline
type: kubernetes
name: build-demo

platform:
  os: linux
  arch: arm64

volumes:
  - name: cache
    temp: {}
  - name: docker
    host:
      path: /var/tmp/docker

services:
  - name: docker
    image: docker:20.10-dind
    environment:
      DOCKER_TLS_CERTDIR: ""
    resources:
      requests:
        cpu: 1
        memory: 2Gi
      limits:
        memory: 2Gi
    privileged: true
    ports:
    - 2375
    volumes:
    - name: docker
      path: /var/lib/docker

steps:
  - name: publish
    image: docker
    environment:
      DOCKER_HOST: "tcp://localhost:2375"
    resources:
      requests:
        cpu: 1
        memory: 128Mi
    privileged: true
    commands:
      - cd frontend && sleep 10 # docker sidecar needs time for startup
      - docker build -t registry.docker-registry:5000/demo/frontend .
      - docker push registry.docker-registry:5000/demo/frontend

Zur Desktop Version des Artikels