Skip to main content

Пишем

Пример пайплайна:

kind: pipeline
type: docker
name: default

steps:
- name: greeting
  image: alpine
  commands:
  - echo hello
  - echo world

Можно указывать в одном drone.yml'е несколько пайплайнов/секретов/и т.д.

  • kind: определяет что это - пайплайн, секрет или еще что
  • type: тип пайплайна (exec, docker, etc...)
  • name: имя пайплайна
  • steps: шаги пайплайна

Приколюхи

Можно фильтровать прод и тестинг таким образом:

node:
  target: shell-scripts
when: 
  branch:
    - master

В node указывается тег target, которым отделять прод от теста. Например на проде:

DRONE_RUNNER_LABELS=target:prod

А на тестинге:

DRONE_RUNNER_LABELS=target:testing

Потом сделать 2 пайплайна для разных веток (testing/master). Правда у меня почему-то не вышло.

Как это все строить?

 

Деплой по сути состоит из нескольких этапов - загрузка кода, проверка+-линтовка, деплой (опционально с доп. подтверждением).

 

Плагины

Указываются как imagы:

kind: pipeline
type: docker
name: default

steps:
- name: test
  image: golang:1.13
  commands:
  - go build
  - go test -v

- name: notify
  image: plugins/slack
  settings:
    channel: dev
    webhook: https://hooks.slack.com/services/...