Initial commit

This commit is contained in:
Yaser
2026-08-13 19:50:53 +03:30
commit 38084458fe
879 changed files with 95198 additions and 0 deletions

553
.drone.yml Normal file
View 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