SlideShare a Scribd company logo
1 of 37
GITHUB ACTION
實現持續整合與持續部署 Customer Engineer
Duran Hsieh
OUTLINE
• Introduction
• Workflows and YAML syntax
• GitHub Event
• Environment Variables & Secrets
• CI and Deployment
3
Presented By: Duran Hsieh
ABOUT ME
• Duran Hsieh
• Microsoft CE (App)
• Other position
• Senior .NET Developer
• Study4.TW .NET Community
Member
• Taichung Google Developer
Group Co-Organizer
• 2016-2018 Microsoft MVP
(VSDT)
4
Presented By: Duran Hsieh
ABOUT ME
• Skill
• Load/Performance Test
• .NET/.NET Core application development
• IIS performance tuning
• Azure App/Storage/SQL/DevOps
• Android
• TeamCity/Jenkins
5
Presented By: Duran Hsieh
ABOUT ME
• Certification
• MCSA: Web Applications
• MCSD: Web Applications
• MCSD: App Builder
• Oracle Certified Professional, Java SE 6 Programmer
• MS: Programming in HTML5 with JavaScript and CSS3
• Oracle Database SQL Certified Expert
• Oracle Database 10g Administrator Certified Associate
• Oracle Database 10g Administrator Certified
• (Course completion confirmation) M102: MongoDB for DBAs
• (Course completion confirmation) M101N: MongoDB for .NET
Developers
• Microsoft Certified: Azure Fundamentals
• Microsoft Certified: Azure Developer Associate
6
Presented By: Duran Hsieh
ABOUT ME
• Award
• 2011資訊教育與科技應用研討會專題競賽佳作(Excellent Work)
• 2010 Open Source and Creative Application Contest (Silver Medal
Award)
• 2012跨領域創意網路通訊應用與服務競賽 (特優)
• IBM Taiwan 2011 z Master Contest (Excellent Performance in Part II)
• The 2012 Network Communication software and Creative Application
Contest Award (First Prize)
• 2014第7屆IT邦幫忙鐵人賽入圍 佳作(Excellent Work)
• 2015 Microsoft Community Challenge (Second Prize)
• 2017第8屆IT邦幫忙鐵人賽 佳作(Excellent Work)
• 2018第9屆IT邦幫忙鐵人賽 佳作(Excellent Work)
• 2018 智在家鄉 聯發科技數位社會創新競賽 首獎 (First Prize)
7
Presented By: Duran Hsieh
ABOUT ME
• Other
• Blog : http://dog0416.blogspot.com/
• GitHub : https://github.com/matsurigoto/
• Bitbucket : https://bitbucket.org/matsurigoto/
• DockerHub : https://hub.docker.com/u/matsurigoto/
INTRODUCTION
9
Presented By: Duran Hsieh
INTRODUCTION
• GitHub Actions
• 在 GitHub Repo 內自訂且自動執行軟體開發流程
• 建立或共享自動化工作 (Job)
• 豐富的觸發程序 (Event)
• 達到自動化、持續整合與持續交付目的
• 豐富的第三方套件可以使用
10
Presented By: Duran Hsieh
INTRODUCTION
• Automation
• 對於第一次建立 Pull Request 貢獻人員打招呼
• 自動使用 Label 分類 Pull Request
• Continue Integration and Deployment
• 還原 (Restore)、建置 (Build)、測試 (Test) 應用程式
• 分析、掃描原始程式
• 相依性分析
• 佈署應用程式
• 雲端服務
• 地端環境
Why?
11
Presented By: Duran Hsieh
INTRODUCTION
• 掃描原始程式 & 相依性分析
• GitHub 發展流程起源於 Community
• 以開源協作為主軸提供功能
• 安全性非常重要
• Public Repo 預設免費開啟
Secure your DevOps = DevSecOps
• 安全測試左移
越接近交付前發現安全漏洞並進行修復
耗損的成本越高
WORKFLOWS
13
Presented By: Duran Hsieh
WORKFLOWS
• Workflows
14
Presented By: Duran Hsieh
WORKFLOWS
• Event
• 觸發自動化工作流程的功能
• GitHub Action 有豐富的觸情境
• Jobs
• Job 是在同一個 Runner 執行的一組 Step
• 預設情況下這些工作會平行執行,你也能設定循序執行
• 當其中一個 Job 失敗後,下一個 Job 不會執行
• Step
• 在 Job 內可以執行命令獨立工作
• Step 可以是一個命令或一個 Action
• 同一個 Job 內允許所有 Action 共享資料
15
Presented By: Duran Hsieh
WORKFLOWS
• Action
• 獨立的執行內容,可以自行撰寫,也可以使用 GitHub 社群創作的
Action 來完成工作流程
• Runner
• 代理程式,負責執行自動化程式的伺服器
• 可運作在 Ubuntu Linux、Microsoft Windows 和 macOS 上
• 預設 GitHub 提供,但私有專案須付費 (以時間計)
16
Presented By: Duran Hsieh
WORKFLOWS
17
Presented By: Duran Hsieh
WORKFLOWS
• Self-hosted runners
• 優點
• 自有主機,無須收取費用 (使用時間限制)
• 可以高度自訂自動化流程
• 缺點
• 需要自有主機
• 自行維護作業系統、網路…等硬體設施
• 需要自行安裝相關套件 (SDK、Runtime…)
執行第三方 Action 時,須注意有沒有惡意指令
18
Presented By: Duran Hsieh
WORKFLOWS
• Demo
• YAML - Hello world !!
GITHUB EVENT
20
Presented By: Duran Hsieh
GITHUB EVENT
• Event
• 特定事件
• 特定時間
• 外部事件觸發 (API)
21
Presented By: Duran Hsieh
GITHUB EVENT
22
Presented By: Duran Hsieh
GITHUB EVENT
23
Presented By: Duran Hsieh
GITHUB EVENT
24
Presented By: Duran Hsieh
GITHUB EVENT
ENVIRONMENT
VARIABLES & SECRETS
26
Presented By: Duran Hsieh
ENVIRONMENT VARIABLES & SECRETS
• 環境變數
• 檔案內使用
• 在 job 中以 env: 宣告變數
• 在後續以 ${{ <expression> }} 方式使用
27
Presented By: Duran Hsieh
ENVIRONMENT VARIABLES & SECRETS
• 進階使用 – 宣告後續使用
• 在 self-host runner 內設定環境變數並取用
• 依作業系統版本不同,語法不同
28
Presented By: Duran Hsieh
ENVIRONMENT VARIABLES & SECRETS
• 秘密
• workflow 需要一些敏感資訊才能與其他服務互動
• API Key
• Password
• …
• 在 Setting 內設定 Secret 會加密,且在執行 workflow
隱藏內容
使用第三方 Action 時須注意是否有列印 Secret 指令!!
CI
AND DEPLOYMENT
30
Presented By: Duran Hsieh
INTRODUCTION
• CI 以 ASP.NET Core 為例
31
Presented By: Duran Hsieh
INTRODUCTION
• YAML
32
Presented By: Duran Hsieh
INTRODUCTION
• Deployment
• 雲端服務
33
Presented By: Duran Hsieh
INTRODUCTION
• 地端環境 1
34
Presented By: Duran Hsieh
INTRODUCTION
• 地端環境 2
35
Presented By: Duran Hsieh
INTRODUCTION
• 地端環境 3
QUESTION & ANSWERS
THANK YOU FOR
WATCHING

More Related Content

What's hot

Android基礎課程2 - google map android API
Android基礎課程2 - google map android APIAndroid基礎課程2 - google map android API
Android基礎課程2 - google map android APIDuran Hsieh
 
DevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline ToolsDevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline Toolsscott liao
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程Duran Hsieh
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1天青 王
 
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用Edward Kuo
 
02 azure devops pipeline - build
02 azure devops pipeline - build02 azure devops pipeline - build
02 azure devops pipeline - buildAlan Tsai
 
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的DevopsEdward Kuo
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路AgileCommunity
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航Edward Kuo
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹Philip Zheng
 
Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Miles Chou
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?Kirk Chen
 
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務Alan Tsai
 
Dev ops 簡介
Dev ops 簡介Dev ops 簡介
Dev ops 簡介hugo lu
 
Effective DevOps (Agile Tour HsinChu 2017)
Effective DevOps (Agile Tour HsinChu 2017)Effective DevOps (Agile Tour HsinChu 2017)
Effective DevOps (Agile Tour HsinChu 2017)Chen Cheng-Wei
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲ChinaNetCloud
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)Will Huang
 
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)Chen Cheng-Wei
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定Kyle Shen
 

What's hot (20)

Android基礎課程2 - google map android API
Android基礎課程2 - google map android APIAndroid基礎課程2 - google map android API
Android基礎課程2 - google map android API
 
DevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline ToolsDevOps Taiwan CICD Pipeline Tools
DevOps Taiwan CICD Pipeline Tools
 
Android 基礎開發課程
Android 基礎開發課程Android 基礎開發課程
Android 基礎開發課程
 
从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1从CI到CD[麻袋理财王天青]v1
从CI到CD[麻袋理财王天青]v1
 
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
[2021 DevDays]Microsoft Teams 整合 Azure DevOps之實務應用
 
02 azure devops pipeline - build
02 azure devops pipeline - build02 azure devops pipeline - build
02 azure devops pipeline - build
 
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops
[ Study4TW Visual Studio Everywhere ] Vsts + microsoft teams 建構企業的Devops
 
Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路Project GATE 的敏捷實踐之路
Project GATE 的敏捷實踐之路
 
DevOps的神鬼奇航
DevOps的神鬼奇航DevOps的神鬼奇航
DevOps的神鬼奇航
 
VSCode Remote Development 介紹
VSCode Remote Development 介紹VSCode Remote Development 介紹
VSCode Remote Development 介紹
 
Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路Continuous Delivery - 敏捷開發的最後一哩路
Continuous Delivery - 敏捷開發的最後一哩路
 
網站上線了,然後呢?
網站上線了,然後呢?網站上線了,然後呢?
網站上線了,然後呢?
 
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
20200425 GlobalAzure-Azure API Management-協助邁向Open API及Micro Service架構的好用服務
 
Dev ops 簡介
Dev ops 簡介Dev ops 簡介
Dev ops 簡介
 
Docker基礎
Docker基礎Docker基礎
Docker基礎
 
Effective DevOps (Agile Tour HsinChu 2017)
Effective DevOps (Agile Tour HsinChu 2017)Effective DevOps (Agile Tour HsinChu 2017)
Effective DevOps (Agile Tour HsinChu 2017)
 
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲
 
极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)极速 Angular 开发:效能调校技巧 (ngChina 2019)
极速 Angular 开发:效能调校技巧 (ngChina 2019)
 
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
 
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
2021 MOPCON - 行動化解決方案的技術選型, 交給 Line Bot 來搞定
 

Similar to GitHub Action Introduction

GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase Duran Hsieh
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用謝 宗穎
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfDuran Hsieh
 
Frontend devops-v1.0
Frontend devops-v1.0Frontend devops-v1.0
Frontend devops-v1.0Yan Wang
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)Gelis Wu
 
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanAzure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanWill Huang
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Kirk Chen
 
GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01Duran Hsieh
 
HDInsight for Microsoft Users
HDInsight for Microsoft UsersHDInsight for Microsoft Users
HDInsight for Microsoft UsersKuo-Chun Su
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊Edward Kuo
 
W3CTech美团react专场-React Native 初探
W3CTech美团react专场-React Native 初探W3CTech美团react专场-React Native 初探
W3CTech美团react专场-React Native 初探美团点评技术团队
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本延胜 黄
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合Qiangning Hong
 
03 azure devops pipeline - release
03 azure devops pipeline - release03 azure devops pipeline - release
03 azure devops pipeline - releaseAlan Tsai
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node jsXuefeng Zhang
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)Duran Hsieh
 
Effective DevOps:一場文化與技術的轉型運動 (陳正瑋)
Effective DevOps:一場文化與技術的轉型運動  (陳正瑋)Effective DevOps:一場文化與技術的轉型運動  (陳正瑋)
Effective DevOps:一場文化與技術的轉型運動 (陳正瑋)AgileTour@TW
 
DevOps Days Taipei 2018
DevOps Days Taipei 2018DevOps Days Taipei 2018
DevOps Days Taipei 2018Cobra Chen
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍Tianwei Liu
 

Similar to GitHub Action Introduction (20)

GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase GDG Taichung: What is new in Firebase
GDG Taichung: What is new in Firebase
 
從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用從軟體開發角度
談 Docker 的應用
從軟體開發角度
談 Docker 的應用
 
Firebase 基礎上手 |2小時由入門到精通 | GDSC NYCU
 Firebase 基礎上手 |2小時由入門到精通 | GDSC NYCU Firebase 基礎上手 |2小時由入門到精通 | GDSC NYCU
Firebase 基礎上手 |2小時由入門到精通 | GDSC NYCU
 
GDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdfGDG Taichung - Flutter and Firebase.pdf
GDG Taichung - Flutter and Firebase.pdf
 
Frontend devops-v1.0
Frontend devops-v1.0Frontend devops-v1.0
Frontend devops-v1.0
 
實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)實踐 Clean Architecture(實作高可用性的軟件架構)
實踐 Clean Architecture(實作高可用性的軟件架構)
 
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 TaiwanAzure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
Azure Web App on Linux @ Global Azure Bootcamp 2017 Taiwan
 
Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016Open source的devops工具箱 公開版@coscup2016
Open source的devops工具箱 公開版@coscup2016
 
GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01GDG Taichung - Firebase Introduction 01
GDG Taichung - Firebase Introduction 01
 
HDInsight for Microsoft Users
HDInsight for Microsoft UsersHDInsight for Microsoft Users
HDInsight for Microsoft Users
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
 
W3CTech美团react专场-React Native 初探
W3CTech美团react专场-React Native 初探W3CTech美团react专场-React Native 初探
W3CTech美团react专场-React Native 初探
 
Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本Appium手机自动化测试 testerhome_bqcon版本
Appium手机自动化测试 testerhome_bqcon版本
 
合久必分,分久必合
合久必分,分久必合合久必分,分久必合
合久必分,分久必合
 
03 azure devops pipeline - release
03 azure devops pipeline - release03 azure devops pipeline - release
03 azure devops pipeline - release
 
Full stack-development with node js
Full stack-development with node jsFull stack-development with node js
Full stack-development with node js
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練1(20160222)
 
Effective DevOps:一場文化與技術的轉型運動 (陳正瑋)
Effective DevOps:一場文化與技術的轉型運動  (陳正瑋)Effective DevOps:一場文化與技術的轉型運動  (陳正瑋)
Effective DevOps:一場文化與技術的轉型運動 (陳正瑋)
 
DevOps Days Taipei 2018
DevOps Days Taipei 2018DevOps Days Taipei 2018
DevOps Days Taipei 2018
 
DAE 新变化介绍
DAE 新变化介绍DAE 新变化介绍
DAE 新变化介绍
 

More from Duran Hsieh

聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?Duran Hsieh
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程Duran Hsieh
 
Visual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfVisual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfDuran Hsieh
 
Cloud Study Jam - ML API 4
Cloud Study Jam -  ML API 4Cloud Study Jam -  ML API 4
Cloud Study Jam - ML API 4Duran Hsieh
 
Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Duran Hsieh
 
Study4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowStudy4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowDuran Hsieh
 
What is .NET Chinese ver
What is .NET Chinese verWhat is .NET Chinese ver
What is .NET Chinese verDuran Hsieh
 
Microsoft recommendation solution on azure
Microsoft recommendation solution on azureMicrosoft recommendation solution on azure
Microsoft recommendation solution on azureDuran Hsieh
 
Microsoft professional program introduction
Microsoft professional program introductionMicrosoft professional program introduction
Microsoft professional program introductionDuran Hsieh
 
聰明的投資者
聰明的投資者聰明的投資者
聰明的投資者Duran Hsieh
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevicesDuran Hsieh
 
Android 基礎課程補充資料
Android 基礎課程補充資料Android 基礎課程補充資料
Android 基礎課程補充資料Duran Hsieh
 
Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Duran Hsieh
 
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3Duran Hsieh
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2Duran Hsieh
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5Duran Hsieh
 

More from Duran Hsieh (20)

聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?聽微軟專家說為何.NET開發非學不可?
聽微軟專家說為何.NET開發非學不可?
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
 
Visual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdfVisual Studio Dev Tunnel.pdf
Visual Studio Dev Tunnel.pdf
 
Cloud Study Jam - ML API 4
Cloud Study Jam -  ML API 4Cloud Study Jam -  ML API 4
Cloud Study Jam - ML API 4
 
Cloud Study Jam ML API 3
Cloud Study Jam ML API 3Cloud Study Jam ML API 3
Cloud Study Jam ML API 3
 
Study4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshowStudy4TW .NET Conf Local Event Taichung 2018 slideshow
Study4TW .NET Conf Local Event Taichung 2018 slideshow
 
What is .NET Chinese ver
What is .NET Chinese verWhat is .NET Chinese ver
What is .NET Chinese ver
 
Microsoft recommendation solution on azure
Microsoft recommendation solution on azureMicrosoft recommendation solution on azure
Microsoft recommendation solution on azure
 
Microsoft professional program introduction
Microsoft professional program introductionMicrosoft professional program introduction
Microsoft professional program introduction
 
聰明的投資者
聰明的投資者聰明的投資者
聰明的投資者
 
聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices聊天機器人概論 Introduce to chat bot sevices
聊天機器人概論 Introduce to chat bot sevices
 
Android 基礎課程補充資料
Android 基礎課程補充資料Android 基礎課程補充資料
Android 基礎課程補充資料
 
Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入Android基礎課程3 - APP上架、廣告與 Facebook 登入
Android基礎課程3 - APP上架、廣告與 Facebook 登入
 
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練62016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練6
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練42016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練4
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練32016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練3
 
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練22016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
2016年逢甲大學資訊系:ASP.NET MVC 4 教育訓練2
 
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練52015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
2015 年逢甲大學資訊系:ASP.NET MVC 4 教育訓練5
 

GitHub Action Introduction

  • 2. OUTLINE • Introduction • Workflows and YAML syntax • GitHub Event • Environment Variables & Secrets • CI and Deployment
  • 3. 3 Presented By: Duran Hsieh ABOUT ME • Duran Hsieh • Microsoft CE (App) • Other position • Senior .NET Developer • Study4.TW .NET Community Member • Taichung Google Developer Group Co-Organizer • 2016-2018 Microsoft MVP (VSDT)
  • 4. 4 Presented By: Duran Hsieh ABOUT ME • Skill • Load/Performance Test • .NET/.NET Core application development • IIS performance tuning • Azure App/Storage/SQL/DevOps • Android • TeamCity/Jenkins
  • 5. 5 Presented By: Duran Hsieh ABOUT ME • Certification • MCSA: Web Applications • MCSD: Web Applications • MCSD: App Builder • Oracle Certified Professional, Java SE 6 Programmer • MS: Programming in HTML5 with JavaScript and CSS3 • Oracle Database SQL Certified Expert • Oracle Database 10g Administrator Certified Associate • Oracle Database 10g Administrator Certified • (Course completion confirmation) M102: MongoDB for DBAs • (Course completion confirmation) M101N: MongoDB for .NET Developers • Microsoft Certified: Azure Fundamentals • Microsoft Certified: Azure Developer Associate
  • 6. 6 Presented By: Duran Hsieh ABOUT ME • Award • 2011資訊教育與科技應用研討會專題競賽佳作(Excellent Work) • 2010 Open Source and Creative Application Contest (Silver Medal Award) • 2012跨領域創意網路通訊應用與服務競賽 (特優) • IBM Taiwan 2011 z Master Contest (Excellent Performance in Part II) • The 2012 Network Communication software and Creative Application Contest Award (First Prize) • 2014第7屆IT邦幫忙鐵人賽入圍 佳作(Excellent Work) • 2015 Microsoft Community Challenge (Second Prize) • 2017第8屆IT邦幫忙鐵人賽 佳作(Excellent Work) • 2018第9屆IT邦幫忙鐵人賽 佳作(Excellent Work) • 2018 智在家鄉 聯發科技數位社會創新競賽 首獎 (First Prize)
  • 7. 7 Presented By: Duran Hsieh ABOUT ME • Other • Blog : http://dog0416.blogspot.com/ • GitHub : https://github.com/matsurigoto/ • Bitbucket : https://bitbucket.org/matsurigoto/ • DockerHub : https://hub.docker.com/u/matsurigoto/
  • 9. 9 Presented By: Duran Hsieh INTRODUCTION • GitHub Actions • 在 GitHub Repo 內自訂且自動執行軟體開發流程 • 建立或共享自動化工作 (Job) • 豐富的觸發程序 (Event) • 達到自動化、持續整合與持續交付目的 • 豐富的第三方套件可以使用
  • 10. 10 Presented By: Duran Hsieh INTRODUCTION • Automation • 對於第一次建立 Pull Request 貢獻人員打招呼 • 自動使用 Label 分類 Pull Request • Continue Integration and Deployment • 還原 (Restore)、建置 (Build)、測試 (Test) 應用程式 • 分析、掃描原始程式 • 相依性分析 • 佈署應用程式 • 雲端服務 • 地端環境 Why?
  • 11. 11 Presented By: Duran Hsieh INTRODUCTION • 掃描原始程式 & 相依性分析 • GitHub 發展流程起源於 Community • 以開源協作為主軸提供功能 • 安全性非常重要 • Public Repo 預設免費開啟 Secure your DevOps = DevSecOps • 安全測試左移 越接近交付前發現安全漏洞並進行修復 耗損的成本越高
  • 13. 13 Presented By: Duran Hsieh WORKFLOWS • Workflows
  • 14. 14 Presented By: Duran Hsieh WORKFLOWS • Event • 觸發自動化工作流程的功能 • GitHub Action 有豐富的觸情境 • Jobs • Job 是在同一個 Runner 執行的一組 Step • 預設情況下這些工作會平行執行,你也能設定循序執行 • 當其中一個 Job 失敗後,下一個 Job 不會執行 • Step • 在 Job 內可以執行命令獨立工作 • Step 可以是一個命令或一個 Action • 同一個 Job 內允許所有 Action 共享資料
  • 15. 15 Presented By: Duran Hsieh WORKFLOWS • Action • 獨立的執行內容,可以自行撰寫,也可以使用 GitHub 社群創作的 Action 來完成工作流程 • Runner • 代理程式,負責執行自動化程式的伺服器 • 可運作在 Ubuntu Linux、Microsoft Windows 和 macOS 上 • 預設 GitHub 提供,但私有專案須付費 (以時間計)
  • 16. 16 Presented By: Duran Hsieh WORKFLOWS
  • 17. 17 Presented By: Duran Hsieh WORKFLOWS • Self-hosted runners • 優點 • 自有主機,無須收取費用 (使用時間限制) • 可以高度自訂自動化流程 • 缺點 • 需要自有主機 • 自行維護作業系統、網路…等硬體設施 • 需要自行安裝相關套件 (SDK、Runtime…) 執行第三方 Action 時,須注意有沒有惡意指令
  • 18. 18 Presented By: Duran Hsieh WORKFLOWS • Demo • YAML - Hello world !!
  • 20. 20 Presented By: Duran Hsieh GITHUB EVENT • Event • 特定事件 • 特定時間 • 外部事件觸發 (API)
  • 21. 21 Presented By: Duran Hsieh GITHUB EVENT
  • 22. 22 Presented By: Duran Hsieh GITHUB EVENT
  • 23. 23 Presented By: Duran Hsieh GITHUB EVENT
  • 24. 24 Presented By: Duran Hsieh GITHUB EVENT
  • 26. 26 Presented By: Duran Hsieh ENVIRONMENT VARIABLES & SECRETS • 環境變數 • 檔案內使用 • 在 job 中以 env: 宣告變數 • 在後續以 ${{ <expression> }} 方式使用
  • 27. 27 Presented By: Duran Hsieh ENVIRONMENT VARIABLES & SECRETS • 進階使用 – 宣告後續使用 • 在 self-host runner 內設定環境變數並取用 • 依作業系統版本不同,語法不同
  • 28. 28 Presented By: Duran Hsieh ENVIRONMENT VARIABLES & SECRETS • 秘密 • workflow 需要一些敏感資訊才能與其他服務互動 • API Key • Password • … • 在 Setting 內設定 Secret 會加密,且在執行 workflow 隱藏內容 使用第三方 Action 時須注意是否有列印 Secret 指令!!
  • 30. 30 Presented By: Duran Hsieh INTRODUCTION • CI 以 ASP.NET Core 為例
  • 31. 31 Presented By: Duran Hsieh INTRODUCTION • YAML
  • 32. 32 Presented By: Duran Hsieh INTRODUCTION • Deployment • 雲端服務
  • 33. 33 Presented By: Duran Hsieh INTRODUCTION • 地端環境 1
  • 34. 34 Presented By: Duran Hsieh INTRODUCTION • 地端環境 2
  • 35. 35 Presented By: Duran Hsieh INTRODUCTION • 地端環境 3

Editor's Notes

  1. I have extensive experience in Load test, Performance Test, .NET/.NET Core application development, IIS performance tuning ,Azure App/Storage/SQL/DevOps , Android, TeamCity
  2. 多數 DevOps 工具著重以自動化與專案管理功能切入
  3. 因為多數的團隊會認為安全工具的導入會影響開發速度,導致時程延宕 但管理者沒有發現的是在軟體開發流程中,越接近交付前發現安全漏洞並進行修復,耗損的成本越高,更不用說是已經上線的系統,