146 lines
3.0 KiB
YAML
146 lines
3.0 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: backend-service
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: "[branch] bump version"
|
|
image: registry.halfakop.ru/golang/bumpversion:0.1.3
|
|
environment:
|
|
GIT_USERNAME:
|
|
from_secret: GIT_USERNAME
|
|
GIT_EMAIL:
|
|
from_secret: GIT_EMAIL
|
|
entrypoint: ["/bumpversion"]
|
|
command: ["--no-commit", "--no-tag", "patch"]
|
|
load: false # do not use /bin/sh -c here
|
|
when:
|
|
branch:
|
|
- task-*
|
|
event:
|
|
- push
|
|
|
|
- name: "[master] bump version"
|
|
image: registry.halfakop.ru/golang/bumpversion:0.1.3
|
|
environment:
|
|
GIT_USERNAME:
|
|
from_secret: GIT_USERNAME
|
|
GIT_EMAIL:
|
|
from_secret: GIT_EMAIL
|
|
entrypoint: ["/bumpversion"]
|
|
command: ["patch"]
|
|
load: false # do not use /bin/sh -c here
|
|
when:
|
|
branch:
|
|
- master
|
|
event:
|
|
- push
|
|
|
|
- name: "[master] build"
|
|
image: plugins/docker
|
|
volumes:
|
|
- name: docker-sock
|
|
path: /var/run/docker.sock
|
|
environment:
|
|
DOCKER_USERNAME:
|
|
from_secret: DOCKER_USERNAME
|
|
DOCKER_PASSWORD:
|
|
from_secret: DOCKER_PASSWORD
|
|
commands:
|
|
- apk add make git bash
|
|
- make login build DOCKER_OPTS="--network devtools"
|
|
when:
|
|
branch:
|
|
- master
|
|
status:
|
|
- success
|
|
|
|
- name: "[master] tagging"
|
|
image: alpine/git
|
|
commands:
|
|
- git push origin master
|
|
- git push origin master --tags
|
|
when:
|
|
branch:
|
|
- master
|
|
status:
|
|
- success
|
|
|
|
- name: "[master] push"
|
|
image: plugins/docker
|
|
volumes:
|
|
- name: docker-sock
|
|
path: /var/run/docker.sock
|
|
environment:
|
|
DOCKER_USERNAME:
|
|
from_secret: DOCKER_USERNAME
|
|
DOCKER_PASSWORD:
|
|
from_secret: DOCKER_PASSWORD
|
|
commands:
|
|
- apk add make git bash
|
|
- make login push DOCKER_OPTS="--network devtools"
|
|
when:
|
|
branch:
|
|
- master
|
|
status:
|
|
- success
|
|
|
|
- name: "[release] get deployment repo"
|
|
image: plugins/ansible:1
|
|
commands:
|
|
- git clone https://git.halfakop.ru/3dthis.ru/deployment.git
|
|
when:
|
|
branch:
|
|
- release
|
|
event:
|
|
- push
|
|
|
|
- name: "[release] check deployment playbook"
|
|
image: plugins/ansible:1
|
|
environment:
|
|
SERVICE_NAME: backend
|
|
settings:
|
|
playbook: deployment/deployment.yml
|
|
inventory: deployment/inventory_service.yml
|
|
syntax_check: true
|
|
when:
|
|
branch:
|
|
- release
|
|
status:
|
|
- success
|
|
|
|
- name: "[release] deploy service"
|
|
image: plugins/ansible:1
|
|
environment:
|
|
SERVICE_NAME: backend
|
|
DATABASE_URL:
|
|
from_secret: DATABASE_URL
|
|
settings:
|
|
playbook: deployment/deployment.yml
|
|
inventory: deployment/inventory_service.yml
|
|
private_key:
|
|
from_secret: SSHKEY
|
|
verbose: 1 # 0 .. 4
|
|
when:
|
|
branch:
|
|
- release
|
|
status:
|
|
- success
|
|
|
|
trigger:
|
|
event:
|
|
exclude:
|
|
- tag
|
|
|
|
volumes:
|
|
- name: docker-sock
|
|
host:
|
|
path: /var/run/docker.sock
|
|
|
|
image_pull_secrets:
|
|
- dockerconfigjson
|