-
Theme:Software Development Team
-
Topic:Python Flask CICD Kickoff! Build your own automated workflow!
-
Motivation:When I was looking for an internship during the second semester of my junior year, I noticed that one of the requirements for many companies was to have a certain understanding of CI/CD. At that time, I had no concept of this area. As I started my internship, I realized that the software architecture tends to grow larger over time, and if developers had to test an deploy every time when they made changes, the burden on time and manpower would increase. That's where CI/CD (Continuous Integration, Continuous Deployment) comes in to accelerate the development process. It not only saves time and manpower but also significantly reduces the chances of human error. That's why I chose this topic for the Ironman contest, and I want to share it with everyone!
-
Final purpose:I hope that through this article, I can guide everyone in easily getting started with the overall CI/CD process, from building and testing to deployment.
-
Technique:
- Python
- Flask
- Pytest
- Docker
- GitHub Action
- Linux
-
Article List:
Theme Introduction:
Development section:
- Day3 - pipenv: The Ultimate Python Package Management Tool!
- Day4 - Simple Python Flask demonstration
- Day5 - Advanced Python concepts(1) - Module
- Day6 - Advanced Python concepts(2) - Decorator
- Day7 - Python Flask(1) - Using URL Paths
- Day8 - Python Flask(2) - Jinja and render template
- Day9 - Python Flask(3) - Form design
- Day10 - Python Flask(4) - redirect and url_for
- Day11 - Python Flask(5) - Template inheritance
Testing section:
Deploy section:
- Day15 - Docker concepts
- Day16 - Docker preparations
- Day17 - Docker implementation(1) - Building and uploading Docker Images
- Day18 - Docker implementation(2) - Using Docker Images
- Day19 - SSH Concepts
CI/CD tool section:
- Day20 - CI/CD tools in the market
- Day21 - YAML format parsing
- Day22 - Introduction to GitHub Actions
Implementation section:
- Day23 - Implementation(1) - Concept explanation
- Day24 - Implementation(2) - Backend data processing
- Day25 - Implementation(3) - Backend data processing testing
- Day26 - Implementation(4) - UI development and data integration
- Day27 - Implementation(5) - Writing the Dockerfile and setting up a Linux server
- Day28 - Implementation(6) - Writing CI pipeline documentation
- Day29 - Implementation(7) - Writing CD pipeline documentation
- Day30 - Implementation(8) - Final presentation
-
組別:Software Development Team
-
主題:Python Flask CICD 啟動 ! 建構屬於你的自動化流程 !
-
選題動機:在大三下找實習時,發現到很多公司的要求之一是對於 CI/CD 有一定的認識,那時候對於這部分的知識點完全沒有概念,隨著開始實習後發現到,其實軟體的架構會隨著服務時間越來越肥大,若開發人員每次開發後,還需要自己測試、部署,那時間和人力成本的負擔就會越來越大,因此這時就可以透過 CI/CD(持續整合、持續部署)這個流程,來加速整體開發的進程,不僅節省了時間和人力,也可以大幅度降低人為出錯的可能性,因此本次的鐵人賽選擇了此主題,想和大家分享!
-
最終成效:希望能夠藉由此文章帶大家輕鬆入門 CI/CD 整體的流程,從建置、測試到建置、部署。
-
使用技術:
- Python
- Flask
- Pytest
- Docker
- GitHub Action
- Linux
-
文章列表:
主題介紹:
開發部分:
- Day3 - pipenv Python 套件管理神器!
- Day4 - 簡單示範 Python Flask
- Day5 - Python 進階概念(一) - 模塊 Module
- Day6 - Python 進階概念(二) - 裝飾器 Decorator
- Day7 - Python Flask(一) - URL 路徑使用
- Day8 - Python Flask(二) - Jinja 和 render_template
- Day9 - Python Flask(三) - 表單設計
- Day10 - Python Flask(四) - redirect 和 url_for
- Day11 - Python Flask(五) - 模板繼承
測試部分:
部署部分:
- Day15 - Docker 概念
- Day16 - Docker 前置作業
- Day17 - Docker 實作(一)- Docker Image 的建置和上傳
- Day18 - Docker 實作(二)- Docker Image 的使用
- Day19 - SSH 概念
CI/CD 工具部分:
實作部分:
- Day23 - 實作(一)- 概念講解
- Day24 - 實作(二)- 後端資料處理製作
- Day25 - 實作(三)- 後端資料處理測試
- Day26 - 實作(四)- 畫面建置和資料串接
- Day27 - 實作(五)- Docker File 的撰寫和 Linux server 的建置
- Day28 - 實作(六)- CI 流程文件撰寫
- Day29 - 實作(六)- CD 流程文件撰寫
- Day30 - 實作(七)- 成果展現