Skip to content

Instantly share code, notes, and snippets.

@mightyhorst
Created August 29, 2017 22:28
Show Gist options
  • Save mightyhorst/d8ddfe5e438007feb020a7b12bdb847d to your computer and use it in GitHub Desktop.
Save mightyhorst/d8ddfe5e438007feb020a7b12bdb847d to your computer and use it in GitHub Desktop.
YAML schemas
triggers:
api:
base_url: http://api.kitset.io/v1/project/{{id}}/
# url:
# /scaffold?
# app=frontend/gateway/backend
# &platform=python/nodejs/ios/angular/reactjs
# &step=all/docker/model/view
# /ci/{env_name=test}/build
# /ci/{env_name=staging}/build
# /ci/{env_name=production}/build
# /ci/{branch=special}
kitset_lifecycle:
all:
save:
$ref: '#/scaffolders'
build:
$ref: '#/scaffolders'
test:
$ref: '#/testing_env'
deploy:
$ref: '#/production_env'
frontend:
save: #/scaffolders
build: #/scaffolders
test: #/testing_env
deploy: #/production_env
gateway:
save: #/scaffolders
build: #/scaffolders
test: #/testing_env
deploy: #/production_env
backend:
save: #/scaffolders
build: #/scaffolders
test: #/testing_env
deploy: #/production_env
gitlab_branches:
test: testing_env
master: staging_env
production: production_env
scaffolders: #build_env:
default_platforms:
backend: nodejs
frontend: nodejs
gateway: python
default:
- #/continuous_build/steps/models
- controllers
- database
steps_backend:
always:
docker: node scaffolders/backend/docker-compose.js
python:
app: node scaffolders/backend/python/app.js
models: node scaffolders/backend/python/models.js
seeds: node scaffolders/backend/python/seeds.js
migrations: node scaffolders/backend/python/migrations.js
controllers: node scaffolders/backend/python/controllers.js
routes: node scaffolders/backend/python/routes.js
nodejs:
app: node scaffolders/backend/nodejs/app.js
models: node scaffolders/backend/nodejs/models.js
seeds: node scaffolders/backend/nodejs/seeds.js
migrations: node scaffolders/backend/nodejs/migrations.js
controllers: node scaffolders/backend/nodejs/controllers.js
routes: node scaffolders/backend/nodejs/routes.js
laravel:
app: node scaffolders/backend/laravel/app.js
models: node scaffolders/backend/laravel/models.js
seeds: node scaffolders/backend/laravel/seeds.js
migrations: node scaffolders/backend/laravel/migrations.js
controllers: node scaffolders/backend/laravel/controllers.js
routes: node scaffolders/backend/laravel/routes.js
steps_gateway:
models: node scaffolders/models.js
seeds: node scaffolders/seeds.js
migrations: node scaffolders/migrations.js
controllers: node scaffolders/controllers.js
routes: node scaffolders/routes.js
app:
data:
project: kitset.project
gateway: kitset.project.gateway
# middleware: node scaffolders/backend/python/app.js
template: templates/view.template
output: output/frontend/app.js
steps_frontend:
models: node scaffolders/models.js
seeds: node scaffolders/seeds.js
migrations: node scaffolders/migrations.js
controllers: node scaffolders/controllers.js
routes: node scaffolders/routes.js
git_env:
backend: gitlab.kitset.io/project/{id}/backend
frontend: gitlab.kitset.io/project/{id}/frontend
gateway: gitlab.kitset.io/project/{id}/gateway
default_env:
services:
- frontend_ios
- frontend_web
- gateway_api
- gateway_socket
- gateway_auth
- backend_ci
- paas_mysql
setup:
frontend_web:
image: superlogical/nodejs
depends_on:
- gateway
- socket
clone:
from: http://kitset.gitlab.io/user_name/project_name/frontend_web.git
to: /home/frontend/frontend_web
command:
- echo "frontend_web is up!"
environment:
GATEWAY_API_URL: http://gateway_api
GATEWAY_AUTH_URL: http://gateway_auth
expose:
- 80
gateway_auth:
image: superlogical/gateway_auth
depends_on:
- paas_mysql
clone:
from: http://kitset.gitlab.io/user_name/project_name/gateway_auth.git
to: /home/gateway/gateway_auth
command:
- echo "gateway_auth is up!"
expose:
- 80
gateway_socket:
image: superlogical/gateway_socket
depends_on:
- gateway_auth
clone:
from: http://kitset.gitlab.io/user_name/project_name/gateway_socket.git
to: /home/gateway/gateway_socket
command:
- npm install
- npm start
- echo "gateway_socket is up!"
expose:
- 3000
gateway_api:
image: superlogical/gateway_api
depends_on:
- backend_ci
- gateway_auth
clone:
from: http://kitset.gitlab.io/user_name/project_name/gateway_api.git
to: /home/gateway/gateway_api
command:
- echo "gateway_api is up!"
expose:
- 80
backend_ci:
image: superlogical/backend_ci
depends_on:
- paas_mysql
- gateway_socket
clone:
from: http://kitset.gitlab.io/user_name/project_name/backend_ci.git
to: /home/gateway/gateway_api
command:
- echo "backend_ci is up!"
expose:
- 80
paas_mysql:
image: mysql
command:
- echo "create database kitset_ci;" > mysql -u root -psecret
- echo "paas_mysql is up!"
expose:
- 3306
testing_env:
# -- inhriots from all services , but you can add additional ones
services:
- frontend_ios
- frontend_web
- gateway_api
- gateway_socket
- gateway_auth
- backend_ci
- paas_mysql
# -- additional setup to override the environment or entrypoint
# setup
steps:
# -- convention is to start with the least dependencies with unit tests and move to full integration tests
# -- e.g. start with your unit tests first, beginning with your platforms, bacjend, gateway then client
- step 1:
frontend_web:
- npm test
gateway_api:
- npm test
- step 2:
paas_mysql:
- npm test
staging_env:
step 1:
docker: superlogical/nodejs
bash:
- npm install
- npm test
step 2:
- git add -A && git commit -m "" && git push -u origin master
production_env:
config:
ip_addres: ldkfkjfd
dns: awesome.commit
webhook: http://awesome.commit/ci/pull
branch: production
port:
ssh: 22
http: 80
setup:
docker_compose: docker-compose up -d
# docker: superlogical/nodejs
bash:
- do stuff
step 1:
bash:
- git pull --all
- npm install
- npm migrate
- npm seed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment