CI System
Outline
-
Introduction
-
Working Flow
-
Problem we met
-
What I have learned
-
Reference
-
Q & A
Introduction
Demo Travis & heroku
Introduction
Demo GitLab CI
Why not using GitLab CI?
Introduction
-
Build project per commit
-
Less flexiblility
- plugin
- gitlab ci cannot adjust when to test
Introduction
Introduction
Why using Jenkins?
-
Well know
-
Easy to use
-
Flexibility
- a lot of plugin (mail, pipline...etc)
- adjust build time when you need
Currently, we think that jenkins is more suitable for us
Working Flow
-
phase1:
-
Update Jenkins jobs
-
Update CI Master
-
-
phase2:
-
Assign jobs to labs
-
- phase3:
- update labs scripts before test run
- run test
phase1: Update jenkins jobs
&
CI Master
Phase2: Assign jobs to lab
Phase3: Update lab & run job
Problem we met
Dev Environment
Jobs configs
Logs
Jobs configs
Jenkins server 1
Jenkins server 2
Dev Environment
Jobs configs
Logs
Jobs configs
Jenkins server 1
Jenkins server 2
current solution: rsync
rsync
Test Golden Data
- synoqc
- synostorage
- our lab
How to test CI System?
Multiple Serverices (container & DS)
- Check DS alive or died in lab
- Control container like a lot of host
- not like single cluster host
- Define what data need to log in database
- Server (container) deploy to different machine
- Add Test lab (currently by manual)
Multiple Serverices (container & DS)
Solutions?
- docker-machine style behavior
- docker swarm
- etcd , consul
Mail List
&
When send reports
(failed, success, any ...ect)
Report Format
What I have learned?
A lot of python programming technique
Testing Framework
Generating document is important
- sphinx
- webapi-DSM5/docs/apidoc.py
Implement Applications in docker
Database ORM
&
Database Migration
Advanced use jenkins
SSH is Powerful
Provide Service not just provide app
Service discover is important
Some cluster concepts
Reference
Q & A
CI System
By chang-ning tsai
CI System
- 414