Initial commit
This commit is contained in:
553
.drone.yml
Normal file
553
.drone.yml
Normal file
@@ -0,0 +1,553 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: test-mysql-5.7
|
||||
|
||||
services:
|
||||
- name: database
|
||||
image: mysql:5.7
|
||||
ports:
|
||||
- 3306
|
||||
environment:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
||||
|
||||
- name: influxdb
|
||||
image: influxdb:1.7.8
|
||||
ports:
|
||||
- 8086
|
||||
environment:
|
||||
INFLUXDB_ADMIN_ENABLED: 'true'
|
||||
|
||||
- name: rabbitmq
|
||||
image: rabbitmq:3.8.9
|
||||
ports:
|
||||
- 5672
|
||||
|
||||
- name: redis
|
||||
image: redis:4.0
|
||||
ports:
|
||||
- 6379
|
||||
|
||||
steps:
|
||||
- name: wait-for-services
|
||||
image: jwilder/dockerize
|
||||
commands:
|
||||
- dockerize -wait tcp://database:3306 -wait tcp://influxdb:8086 -wait tcp://rabbitmq:5672 -wait tcp://redis:6379 -timeout 1m
|
||||
|
||||
- name: init-influxdb
|
||||
image: influxdb:1.7.8
|
||||
commands:
|
||||
- cat db/influxdb.sql | influx -host influxdb
|
||||
|
||||
# Copy bundler cache from the host machine to your build environment.
|
||||
# Plugin description: http://plugins.drone.io/drillster/drone-volume-cache
|
||||
- name: restore-bundle-cache
|
||||
pull: if-not-exists
|
||||
image: drillster/drone-volume-cache
|
||||
settings:
|
||||
restore: true
|
||||
mount:
|
||||
- vendor/bundle
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
path: /cache
|
||||
|
||||
- name: run-rspec
|
||||
image: ruby:2.6.5
|
||||
environment:
|
||||
DATABASE_HOST: database
|
||||
INFLUXDB_HOST: influxdb
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
EVENT_API_RABBITMQ_HOST: rabbitmq
|
||||
REDIS_URL: redis://redis:6379
|
||||
RAILS_ENV: test
|
||||
VAULT_ADDR: ''
|
||||
VAULT_TOKEN: ''
|
||||
commands:
|
||||
- bin/init_config
|
||||
- gem install bundler:2.1.4
|
||||
- bundle install --jobs=$(nproc) --retry=3 --path vendor/bundle
|
||||
- bundle exec rake db:create db:migrate
|
||||
- LOG_LEVEL=warn bundle exec rspec
|
||||
|
||||
- name: rebuild-bundle-cache
|
||||
pull: if-not-exists
|
||||
image: drillster/drone-volume-cache
|
||||
settings:
|
||||
rebuild: true
|
||||
mount:
|
||||
- vendor/bundle
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
path: /cache
|
||||
|
||||
- name: docs-generate
|
||||
image: quay.io/openware/ruby-node:2.6.5
|
||||
environment:
|
||||
DATABASE_HOST: database
|
||||
INFLUXDB_HOST: influxdb
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
EVENT_API_RABBITMQ_HOST: rabbitmq
|
||||
REDIS_URL: redis://redis:6379
|
||||
VAULT_TOKEN: ''
|
||||
commands:
|
||||
- gem install bundler:2.1.4
|
||||
- bin/gendocs
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
- "*-stable"
|
||||
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
host:
|
||||
path: /tmp/bundle
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: test-mariadb-10.3
|
||||
|
||||
services:
|
||||
- name: mariadb
|
||||
image: mariadb:10.3
|
||||
ports:
|
||||
- 3306
|
||||
environment:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
||||
|
||||
- name: influxdb
|
||||
image: influxdb:1.7.8
|
||||
ports:
|
||||
- 8086
|
||||
environment:
|
||||
INFLUXDB_ADMIN_ENABLED: 'true'
|
||||
|
||||
- name: rabbitmq
|
||||
image: rabbitmq:3.8.9
|
||||
ports:
|
||||
- 5672
|
||||
|
||||
- name: redis
|
||||
image: redis:4.0
|
||||
ports:
|
||||
- 6379
|
||||
|
||||
steps:
|
||||
- name: wait-for-services
|
||||
image: jwilder/dockerize
|
||||
commands:
|
||||
- dockerize -wait tcp://mariadb:3306 -wait tcp://influxdb:8086 -wait tcp://rabbitmq:5672 -wait tcp://redis:6379 -timeout 1m
|
||||
|
||||
- name: init-influxdb
|
||||
image: influxdb:1.7.8
|
||||
commands:
|
||||
- cat db/influxdb.sql | influx -host influxdb
|
||||
|
||||
- name: restore-bundle-cache
|
||||
pull: if-not-exists
|
||||
image: drillster/drone-volume-cache
|
||||
settings:
|
||||
restore: true
|
||||
mount:
|
||||
- vendor/bundle
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
path: /cache
|
||||
|
||||
- name: run-rspec
|
||||
image: ruby:2.6.5
|
||||
environment:
|
||||
DATABASE_HOST: "mariadb"
|
||||
DATABASE_SUPPORT_JSON: "false"
|
||||
INFLUXDB_HOST: influxdb
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
EVENT_API_RABBITMQ_HOST: rabbitmq
|
||||
REDIS_URL: redis://redis:6379
|
||||
RAILS_ENV: test
|
||||
VAULT_ADDR: ''
|
||||
VAULT_TOKEN: ''
|
||||
commands:
|
||||
- bin/init_config
|
||||
- gem install bundler:2.1.4
|
||||
- bundle install --jobs=$(nproc) --retry=3 --path vendor/bundle
|
||||
- bundle exec rake db:create db:migrate
|
||||
- LOG_LEVEL=warn bundle exec rspec
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- "*-stable"
|
||||
- "fix-db/*"
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: test-mysql-8.0
|
||||
|
||||
services:
|
||||
- name: mysql
|
||||
image: mysql:8.0
|
||||
commands:
|
||||
- /entrypoint.sh --default-authentication-plugin=mysql_native_password
|
||||
ports:
|
||||
- 3306
|
||||
environment:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
||||
|
||||
- name: influxdb
|
||||
image: influxdb:1.7.8
|
||||
ports:
|
||||
- 8086
|
||||
environment:
|
||||
INFLUXDB_ADMIN_ENABLED: 'true'
|
||||
|
||||
- name: rabbitmq
|
||||
image: rabbitmq:3.8.9
|
||||
ports:
|
||||
- 5672
|
||||
|
||||
- name: redis
|
||||
image: redis:4.0
|
||||
ports:
|
||||
- 6379
|
||||
|
||||
steps:
|
||||
- name: wait-for-services
|
||||
image: jwilder/dockerize
|
||||
commands:
|
||||
- dockerize -wait tcp://mysql:3306 -wait tcp://influxdb:8086 -wait tcp://rabbitmq:5672 -wait tcp://redis:6379 -timeout 1m
|
||||
|
||||
- name: init-influxdb
|
||||
image: influxdb:1.7.8
|
||||
commands:
|
||||
- cat db/influxdb.sql | influx -host influxdb
|
||||
|
||||
- name: restore-bundle-cache
|
||||
pull: if-not-exists
|
||||
image: drillster/drone-volume-cache
|
||||
settings:
|
||||
restore: true
|
||||
mount:
|
||||
- vendor/bundle
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
path: /cache
|
||||
|
||||
- name: run-rspec
|
||||
image: ruby:2.6.5
|
||||
environment:
|
||||
DATABASE_HOST: "mysql"
|
||||
INFLUXDB_HOST: influxdb
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
EVENT_API_RABBITMQ_HOST: rabbitmq
|
||||
REDIS_URL: redis://redis:6379
|
||||
RAILS_ENV: test
|
||||
VAULT_ADDR: ''
|
||||
VAULT_TOKEN: ''
|
||||
commands:
|
||||
- bin/init_config
|
||||
- gem install bundler:2.1.4
|
||||
- bundle install --jobs=$(nproc) --retry=3 --path vendor/bundle
|
||||
- bundle exec rake db:create db:migrate
|
||||
- LOG_LEVEL=warn bundle exec rspec
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- "*-stable"
|
||||
- "fix-db/*"
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: test-postgresql-13.0
|
||||
|
||||
services:
|
||||
- name: postgres
|
||||
image: postgres:13.0
|
||||
ports:
|
||||
- 5432
|
||||
environment:
|
||||
POSTGRES_PASSWORD: changeme
|
||||
|
||||
- name: influxdb
|
||||
image: influxdb:1.7.8
|
||||
ports:
|
||||
- 8086
|
||||
environment:
|
||||
INFLUXDB_ADMIN_ENABLED: 'true'
|
||||
|
||||
- name: rabbitmq
|
||||
image: rabbitmq:3.8.9
|
||||
ports:
|
||||
- 5672
|
||||
|
||||
- name: redis
|
||||
image: redis:4.0
|
||||
ports:
|
||||
- 6379
|
||||
|
||||
steps:
|
||||
- name: wait-for-services
|
||||
image: jwilder/dockerize
|
||||
commands:
|
||||
- dockerize -wait tcp://postgres:5432 -wait tcp://influxdb:8086 -wait tcp://rabbitmq:5672 -wait tcp://redis:6379 -timeout 1m
|
||||
|
||||
- name: init-influxdb
|
||||
image: influxdb:1.7.8
|
||||
commands:
|
||||
- cat db/influxdb.sql | influx -host influxdb
|
||||
|
||||
- name: restore-bundle-cache
|
||||
pull: if-not-exists
|
||||
image: drillster/drone-volume-cache
|
||||
settings:
|
||||
restore: true
|
||||
mount:
|
||||
- vendor/bundle
|
||||
volumes:
|
||||
- name: bundle-cache
|
||||
path: /cache
|
||||
|
||||
- name: run-rspec
|
||||
image: ruby:2.6.5
|
||||
environment:
|
||||
DATABASE_HOST: "postgres"
|
||||
DATABASE_USER: "postgres"
|
||||
DATABASE_PASS: "changeme"
|
||||
DATABASE_ADAPTER: "postgresql"
|
||||
DATABASE_PORT: "5432"
|
||||
DATABASE_COLLATION: ""
|
||||
INFLUXDB_HOST: influxdb
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
EVENT_API_RABBITMQ_HOST: rabbitmq
|
||||
REDIS_URL: redis://redis:6379
|
||||
RAILS_ENV: test
|
||||
VAULT_ADDR: ''
|
||||
VAULT_TOKEN: ''
|
||||
commands:
|
||||
- bin/init_config
|
||||
- gem install bundler:2.1.4
|
||||
- bundle install --jobs=$(nproc) --retry=3 --path vendor/bundle
|
||||
- bundle exec rake db:create db:migrate
|
||||
- LOG_LEVEL=warn bundle exec rspec
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- "*-stable"
|
||||
- "fix-db/*"
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: docker-build-snapshot
|
||||
|
||||
steps:
|
||||
- name: git-tag-snapshot
|
||||
image: quay.io/openware/sdk-citools:2.6.7
|
||||
environment:
|
||||
BRANCH_NAME: master
|
||||
REPO_NAME: ${DRONE_REPO}
|
||||
GITHUB_API_KEY:
|
||||
from_secret: kite_bot_key
|
||||
commands:
|
||||
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:prebuild
|
||||
- bin/genversion
|
||||
|
||||
# Build and push docker image using ".tags" file.
|
||||
- name: docker-build-and-push
|
||||
image: plugins/docker
|
||||
settings:
|
||||
username:
|
||||
from_secret: quay_username
|
||||
password:
|
||||
from_secret: quay_password
|
||||
repo: quay.io/openware/peatio
|
||||
registry: quay.io
|
||||
|
||||
# Redeploy on master.devkube.com
|
||||
- name: devkube-redeploy
|
||||
image: rubykube/microkube:0.2.0
|
||||
environment:
|
||||
WEBHOOK_JWT_SECRET:
|
||||
from_secret: devkube_webhook_secret
|
||||
commands:
|
||||
- export latest_image=quay.io/openware/peatio:$(cat .tags)
|
||||
- cd /home/app
|
||||
- bundle exec rake payload:send[peatio,$latest_image,http://master.devkube.com:1337]
|
||||
detach: true
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
|
||||
# Update changelog and API documentation, then push it to sdk repository and notify.
|
||||
- name: push-and-notify
|
||||
image: quay.io/openware/sdk-citools:2.6.7
|
||||
environment:
|
||||
BOT_USERNAME: kite-bot
|
||||
BOT_NAME: Kite Bot
|
||||
BOT_EMAIL: kite-bot@heliostech.fr
|
||||
REPO_NAME: ${DRONE_REPO}
|
||||
BRANCH_NAME: ${DRONE_BRANCH}
|
||||
SDK_BRANCH: ${DRONE_BRANCH}
|
||||
TELEGRAM_BOT_TOKEN:
|
||||
from_secret: telegram_bot_token
|
||||
TELEGRAM_CHAT_ID:
|
||||
from_secret: telegram_chat_id
|
||||
SLACK_TOKEN:
|
||||
from_secret: slack_token
|
||||
SLACK_CHANNEL:
|
||||
from_secret: slack_channel
|
||||
GITHUB_API_KEY:
|
||||
from_secret: kite_bot_key
|
||||
commands:
|
||||
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:postbuild[/drone/src]
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
|
||||
# Trigger custom Peatio image build
|
||||
- name: build-custom-image
|
||||
image: curlimages/curl
|
||||
environment:
|
||||
SERVER: https://ci.openware.work
|
||||
REPO: openware/assembly-line
|
||||
BRANCH: master
|
||||
COMPONENT: peatio
|
||||
DRONE_TOKEN:
|
||||
from_secret: drone_token
|
||||
commands:
|
||||
- COMPONENT_VERSION=$(cat .tags)
|
||||
- "curl -s -XPOST -H \"Authorization: Bearer $DRONE_TOKEN\" -i \"$SERVER/api/repos/$REPO/builds?branch=$BRANCH&ASSEMBLY_COMPONENT_VERSION=$COMPONENT_VERSION&ASSEMBLY_COMPONENT=$COMPONENT\""
|
||||
detach: true
|
||||
when:
|
||||
branch:
|
||||
- master
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- master
|
||||
- "fix/*"
|
||||
- "integration/*"
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: docker-build-stable
|
||||
|
||||
steps:
|
||||
# Update application version
|
||||
- name: git-tag-stable
|
||||
image: quay.io/openware/sdk-citools:2.6.7
|
||||
environment:
|
||||
BOT_USERNAME: kite-bot
|
||||
BOT_NAME: Kite Bot
|
||||
BOT_EMAIL: kite-bot@heliostech.fr
|
||||
BRANCH_NAME: ${DRONE_BRANCH}
|
||||
REPO_NAME: ${DRONE_REPO}
|
||||
GITHUB_API_KEY:
|
||||
from_secret: kite_bot_key
|
||||
commands:
|
||||
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:prebuild
|
||||
- bin/genversion
|
||||
|
||||
# Build and push docker image using ".tags" file.
|
||||
- name: docker-build-and-push
|
||||
image: plugins/docker
|
||||
settings:
|
||||
username:
|
||||
from_secret: quay_username
|
||||
password:
|
||||
from_secret: quay_password
|
||||
repo: quay.io/openware/peatio
|
||||
registry: quay.io
|
||||
|
||||
# Redeploy on master.devkube.com
|
||||
- name: devkube-redeploy
|
||||
image: rubykube/microkube:0.2.0
|
||||
environment:
|
||||
WEBHOOK_JWT_SECRET:
|
||||
from_secret: devkube_webhook_secret
|
||||
commands:
|
||||
- export latest_image=quay.io/openware/peatio:$(cat .tags)
|
||||
- cd /home/app
|
||||
- bundle exec rake payload:send[peatio,$latest_image,http://master.devkube.com:1337]
|
||||
detach: true
|
||||
|
||||
# Update changelog and API documentation, then push it to sdk repository and notify.
|
||||
- name: push-and-notify
|
||||
image: quay.io/openware/sdk-citools:2.6.7
|
||||
environment:
|
||||
BOT_USERNAME: kite-bot
|
||||
BOT_NAME: Kite Bot
|
||||
BOT_EMAIL: kite-bot@heliostech.fr
|
||||
REPO_NAME: ${DRONE_REPO}
|
||||
BRANCH_NAME: ${DRONE_BRANCH}
|
||||
SDK_BRANCH: ${DRONE_BRANCH}
|
||||
TELEGRAM_BOT_TOKEN:
|
||||
from_secret: telegram_bot_token
|
||||
TELEGRAM_CHAT_ID:
|
||||
from_secret: telegram_chat_id
|
||||
SLACK_TOKEN:
|
||||
from_secret: slack_token
|
||||
SLACK_CHANNEL:
|
||||
from_secret: slack_channel
|
||||
GITHUB_API_KEY:
|
||||
from_secret: kite_bot_key
|
||||
commands:
|
||||
- BUNDLE_GEMFILE=/sdk/Gemfile bundle exec rake --rakefile=/sdk/Rakefile ci:postbuild[/drone/src]
|
||||
|
||||
# Trigger custom Peatio image build
|
||||
- name: build-custom-image
|
||||
image: curlimages/curl
|
||||
environment:
|
||||
SERVER: https://ci.openware.work
|
||||
REPO: openware/assembly-line
|
||||
BRANCH: master
|
||||
COMPONENT: peatio
|
||||
DRONE_TOKEN:
|
||||
from_secret: drone_token
|
||||
commands:
|
||||
- COMPONENT_VERSION=$(cat .tags)
|
||||
- "curl -s -XPOST -H \"Authorization: Bearer $DRONE_TOKEN\" -i \"$SERVER/api/repos/$REPO/builds?branch=$BRANCH&ASSEMBLY_COMPONENT_VERSION=$COMPONENT_VERSION&ASSEMBLY_COMPONENT=$COMPONENT\""
|
||||
detach: true
|
||||
|
||||
- name: "Update global OpenDAX version"
|
||||
image: quay.io/openware/goci:0.0.6
|
||||
environment:
|
||||
GIT_TOKEN:
|
||||
from_secret: kite_bot_key
|
||||
commands:
|
||||
- /app/goci versions
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- push
|
||||
branch:
|
||||
- "*-stable"
|
||||
|
||||
depends_on:
|
||||
- test-mysql-5.7
|
||||
- test-mariadb-10.3
|
||||
- test-mysql-8.0
|
||||
- test-postgresql-13.0
|
||||
|
||||
image_pull_secrets:
|
||||
- dockerconfigjson
|
||||
Reference in New Issue
Block a user