Submit Search
Upload
Continuous Integration with Gitlab
•
0 likes
•
275 views
J
Junyoung Park
Follow
With Gitlab CI, Docker Registry, Fabric
Read less
Read more
Software
Report
Share
Report
Share
1 of 16
Download now
Download to read offline
Recommended
Drupal Form Api
Drupal Form Api
Amit Kumar Singh
WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016
WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016
Jesper van Engelen
About Neural Network
About Neural Network
Junyoung Park
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Danilo Poccia
Continuous Integration
Continuous Integration
Preetam Palwe
Continuous Integration
Continuous Integration
Jean-Pol Landrain
03 - Continuous Integration
03 - Continuous Integration
Sergii Shmarkatiuk
01 - Introduction to Version Control
01 - Introduction to Version Control
Sergii Shmarkatiuk
Recommended
Drupal Form Api
Drupal Form Api
Amit Kumar Singh
WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016
WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016
Jesper van Engelen
About Neural Network
About Neural Network
Junyoung Park
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
Danilo Poccia
Continuous Integration
Continuous Integration
Preetam Palwe
Continuous Integration
Continuous Integration
Jean-Pol Landrain
03 - Continuous Integration
03 - Continuous Integration
Sergii Shmarkatiuk
01 - Introduction to Version Control
01 - Introduction to Version Control
Sergii Shmarkatiuk
jQuery Bay Area Conference 2010
jQuery Bay Area Conference 2010
mennovanslooten
Pruebas unitarias con django
Pruebas unitarias con django
Tomás Henríquez
Тестирование и Django
Тестирование и Django
MoscowDjango
Django (Web Konferencia 2009)
Django (Web Konferencia 2009)
Szilveszter Farkas
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Fernando Daciuk
Confident Refactoring - Ember SF Meetup
Confident Refactoring - Ember SF Meetup
Fastly
Python Unit Test
Python Unit Test
David Xie
Creating an Uber Clone - Part XXXIV - Transcript.pdf
Creating an Uber Clone - Part XXXIV - Transcript.pdf
ShaiAlmog1
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Mamoon Ismail Khalid
Unit test
Unit test
David Xie
How I started to love design patterns
How I started to love design patterns
Samuel ROZE
ngMess: AngularJS Dependency Injection
ngMess: AngularJS Dependency Injection
Dzmitry Ivashutsin
inception.docx
inception.docx
SAIEFEDDINEELAMRI
Refactoring domain driven design way
Refactoring domain driven design way
Andi Pangeran
Practical Celery
Practical Celery
Cameron Maske
Angular Unit Testing NDC Minn 2018
Angular Unit Testing NDC Minn 2018
Justin James
Flask 소수전공 강의자료 - 3차시
Flask 소수전공 강의자료 - 3차시
Junha Jang
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Ryan Weaver
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Amazon Web Services
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Amazon Web Services
Quantitive Algorithm Trading
Quantitive Algorithm Trading
Junyoung Park
K-Means Clustering
K-Means Clustering
Junyoung Park
More Related Content
Similar to Continuous Integration with Gitlab
jQuery Bay Area Conference 2010
jQuery Bay Area Conference 2010
mennovanslooten
Pruebas unitarias con django
Pruebas unitarias con django
Tomás Henríquez
Тестирование и Django
Тестирование и Django
MoscowDjango
Django (Web Konferencia 2009)
Django (Web Konferencia 2009)
Szilveszter Farkas
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Fernando Daciuk
Confident Refactoring - Ember SF Meetup
Confident Refactoring - Ember SF Meetup
Fastly
Python Unit Test
Python Unit Test
David Xie
Creating an Uber Clone - Part XXXIV - Transcript.pdf
Creating an Uber Clone - Part XXXIV - Transcript.pdf
ShaiAlmog1
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Mamoon Ismail Khalid
Unit test
Unit test
David Xie
How I started to love design patterns
How I started to love design patterns
Samuel ROZE
ngMess: AngularJS Dependency Injection
ngMess: AngularJS Dependency Injection
Dzmitry Ivashutsin
inception.docx
inception.docx
SAIEFEDDINEELAMRI
Refactoring domain driven design way
Refactoring domain driven design way
Andi Pangeran
Practical Celery
Practical Celery
Cameron Maske
Angular Unit Testing NDC Minn 2018
Angular Unit Testing NDC Minn 2018
Justin James
Flask 소수전공 강의자료 - 3차시
Flask 소수전공 강의자료 - 3차시
Junha Jang
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Ryan Weaver
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Amazon Web Services
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Amazon Web Services
Similar to Continuous Integration with Gitlab
(20)
jQuery Bay Area Conference 2010
jQuery Bay Area Conference 2010
Pruebas unitarias con django
Pruebas unitarias con django
Тестирование и Django
Тестирование и Django
Django (Web Konferencia 2009)
Django (Web Konferencia 2009)
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Confident Refactoring - Ember SF Meetup
Confident Refactoring - Ember SF Meetup
Python Unit Test
Python Unit Test
Creating an Uber Clone - Part XXXIV - Transcript.pdf
Creating an Uber Clone - Part XXXIV - Transcript.pdf
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Detect Negative and Positive sentiment in user reviews using python word2vec ...
Unit test
Unit test
How I started to love design patterns
How I started to love design patterns
ngMess: AngularJS Dependency Injection
ngMess: AngularJS Dependency Injection
inception.docx
inception.docx
Refactoring domain driven design way
Refactoring domain driven design way
Practical Celery
Practical Celery
Angular Unit Testing NDC Minn 2018
Angular Unit Testing NDC Minn 2018
Flask 소수전공 강의자료 - 3차시
Flask 소수전공 강의자료 - 3차시
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
Build a Web Authentication System with a Custom UI
More from Junyoung Park
Quantitive Algorithm Trading
Quantitive Algorithm Trading
Junyoung Park
K-Means Clustering
K-Means Clustering
Junyoung Park
Common Design for Distributed Machine Learning
Common Design for Distributed Machine Learning
Junyoung Park
AWS EMR + Spark ML
AWS EMR + Spark ML
Junyoung Park
Kaggle KKBox Churn Prediction
Kaggle KKBox Churn Prediction
Junyoung Park
Spark config
Spark config
Junyoung Park
Cloudera & Zookeeper
Cloudera & Zookeeper
Junyoung Park
한국어 자연어처리 101
한국어 자연어처리 101
Junyoung Park
Docker Intro
Docker Intro
Junyoung Park
Python Testing for Flask
Python Testing for Flask
Junyoung Park
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word Embedding
Junyoung Park
Clustering, k means algorithm
Clustering, k means algorithm
Junyoung Park
About SVM
About SVM
Junyoung Park
More from Junyoung Park
(13)
Quantitive Algorithm Trading
Quantitive Algorithm Trading
K-Means Clustering
K-Means Clustering
Common Design for Distributed Machine Learning
Common Design for Distributed Machine Learning
AWS EMR + Spark ML
AWS EMR + Spark ML
Kaggle KKBox Churn Prediction
Kaggle KKBox Churn Prediction
Spark config
Spark config
Cloudera & Zookeeper
Cloudera & Zookeeper
한국어 자연어처리 101
한국어 자연어처리 101
Docker Intro
Docker Intro
Python Testing for Flask
Python Testing for Flask
News clustering and Recommendation system using Word Embedding
News clustering and Recommendation system using Word Embedding
Clustering, k means algorithm
Clustering, k means algorithm
About SVM
About SVM
Recently uploaded
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
Philip Schwarz
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
AnoyGreter
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
gurkirankumar98700
Asset Management Software - Infographic
Asset Management Software - Infographic
Hr365.us smith
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
MyIntelliSource, Inc.
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Neo4j
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Christina Lin
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
Dinusha Kumarasiri
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
MyIntelliSource, Inc.
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
VICTOR MAESTRE RAMIREZ
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
nada99848
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Ahmed Mohamed
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
umasea
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
BradBedford3
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
OnePlan Solutions
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Hanief Utama
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
stazi3110
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
AxelRicardoTrocheRiq
Recently uploaded
(20)
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
MYjobs Presentation Django-based project
MYjobs Presentation Django-based project
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽❤️🧑🏻 89...
Asset Management Software - Infographic
Asset Management Software - Infographic
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
EY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
Continuous Integration with Gitlab
1.
About Continuous Integration
2.
CI ? ! ? ? , !
3.
(Continuous Integration) CI Test
.
4.
Testing
5.
Unit testing Functional testing Integration
testing ,
6.
Test Tutorial class AppTest(unittest.TestCase): def
setUp(self): self.app = app.test_client() self.access_token = self.token() def token(self, username, password): p = self.app.post('/signin', data=dict( id=username, pw=password ), follow_redirects=True) result = json.loads(p.data) self.assertEqual(result['e_msg'].get('status'), 200) return result['access_token']
7.
Test Signin def test_signin(self): #
Invalid Username p = self.app.post('/signin', data=dict( id=username + 'xxx', pw=password )) result = json.loads(p.data) self.assertEqual(result['e_msg'].get('message'), 'User not fo # Invalid Password p = self.app.post('/signin', data=dict( id=username, pw=password + 'x' )) result = json.loads(p.data) self.assertEqual(result['e_msg'].get('message'), 'User id or
8.
Test Signup def test_signup(self): ##
User Already Exists p = self.app.post('/signup', data=dict( id=username, pw=password )) result = json.loads(p.data) self.assertEqual(result['e_msg'].get('message'), 'User alread # Signup Successful p = self.app.post('/signup', data=dict( id=username + 'x', pw=password )) result = json.loads(p.data) self.assertEqual(result['e_msg'].get('status'), 200)
9.
Pytest Plugin pytest‑pep8 :
, PEP8 pytest‑cov : pytest‑xdist :
10.
Test Command Backend API pytest
‑s backend/ Backend API user API pytest ‑s backend/users PEP8 pytest ‑‑pep8 ‑m pep8 PEP8 Backend API pytest ‑‑pep8 ‑s backend/
11.
Deploy / Setup
Automation
12.
Deploy / Setup
Automation 1000 ? ! http://www.fabfile.org/ Fabric ? ! $ fab create $ fab deploy $ fab build $ fab test
13.
Gitlab CI Gitlab DigitalOcean
CI ! Ubuntu-Ruby Docker Gitlab Registry Gitlab Docker Registry ! Docker Registry ? private docker image repository
14.
Gitlab CI Docker Docker
Runner .
15.
CI process 1. User
Gitlab Push , 2. Gitlab CI Gitlab Registry Docker image 3. Docker image centos‑python‑mysql 4. requirements.txt 5. 1 : Runner job 6. 2 : pytest (PEP8) 7. 3 : AWS EC2 deploy 8. Slack
16.
, (Blue‑Green Deployment)
Download now