GitLab CI/CD 之 extends 繼承使用

閱讀時間約 3 分鐘
raw-image

前言

上次教到如何使用 scp 與 CI/CD 配合複製檔案至伺服器,今天我們要來教 CI/CD 中的 extends 指令,extends 在有些程式語言叫做繼承的意思,那在 CI/CD 中,叫做繼承工作的意思,妳也可以把它當成,CI/CD 也可以繼承工作,幫助我們在撰寫 CI/CD 腳本更加省事

extends 作用

extends 是用來幫助我的在寫 CI/CD 工作時,可以繼承工作屬性,讓我們在撰寫 CI/CD 時更加省事又有效率,總不可能當有相同工作時,一直寫重複工作,這樣雖然可以用,但是會不好閱讀 CI/CD 工作腳本,看完 extends 這個功能是不是覺得很方便呢 ?

extends 定義規則

extends 定義也是先定義工作名稱,只不過在工作最前面要加 dot 符號,在繼承工作的地方加上 extends,並寫上繼承工作名稱,請看以下範例

stages:
- deploy

.deploy:
tags:
- shell
script:
- echo 'deploy server'

deploy-to-development:
stage: deploy
tags:
- shell
extends: .deploy

練習時間

接下來我們來練習 extends 這個指令,我們去模擬佈署時要先複製檔案到伺服器上,並用繼承的方式,處理同一個類似的工作

image: mcr.microsoft.com/dotnet/sdk:6.0

stages:
- deploy

.deploy:
tags:
- shell
before_script:
- eval $(ssh-agent -s)
- ssh-add <(echo "$SERVER_PRIVATE_KEY")
script:
- ssh -o StrictHostKeyChecking=no $SERVER_USER_NAME@$SERVER_URL "
mkdir -p ~/DotNetCoreWebApiCiAndCdCourse"
- scp -o StrictHostKeyChecking=no ./docker-compose.yml $SERVER_USER_NAME@$SERVER_URL:~/DotNetCoreWebApiCiAndCdCourse

deploy-to-development:
stage: deploy
tags:
- shell
extends: .deploy

deploy-to-staging:
stage: deploy
tags:
- shell
extends: .deploy
needs:
- deploy-to-development

在這裡可以看到我們的 deploy-to-development 這個 CI/CD 工作運作成功

raw-image

同時看到 deploy-to-staging 這個 CI/CD 工作也運作成功

raw-image
avatar-img
10會員
49內容數
d3.js 圖形
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Tim Bai的沙龍 的其他內容
前言 大家好上次教 Gitlab CI/CD 如何撰寫 CI/CD 腳本,使用 ssh 自動連線目標主機,很受到大家關注,在這裡先跟大家說一聲謝謝,以後會繼續做有意義的文章給各位,今天要教大家如何使用 scp 這個使令,將我們的檔案複製到目標主機,並進行佈署動作,我們之後會使用 Docker Co
前言 上次我們教到完了怎麼在 Gitlab CI/CD 怎麼自動打包 Docker Image 並自動上傳到 Docker Hub 以及如何將 Docker Image 做版號,今天我們來教 Gitlab CI/CD 其中之一很重要的是自動 ssh 連線,因為往後我們會透過 Gitlab 伺服器使
前言 上次我們教到如何使用 Gitlab CI/CD 自動打包 Docker Image,並自動上傳 Docker Image 到 Docker Hub 存放我們的 Image,今天我們要再做一件事情,也就是當我們上傳 Image 時,除的上傳自動最新 Image,還要自動掛載版號 jq 工具使
前言 上次我們教到如何打包 Docker Image,而今我們要交如何將我們打包好的 Docker Image 自動化上傳到 Docker Hub,這樣的話不但可以減輕我們的工作,也可以讓我們為的的佈署新服務更有效率 設定隱藏變數 在我們設定裡面,設定我們 CI/CD 變數,我們在這裡設定我們
前言 上次我們教到 Group Runner 使用方式,今天我們要教在 CI/CD 過程,自動打包 Docker Image 上去到我們的 Docker Registry,本次講解我們使用 Docker Hub 作為練習,透過 Gitlab CI/CD 自動上傳到 Docker Hub,我們會分成
前言 上次我們教到 GitLab CI/CD 的 artifacts,今天我們要來講一個叫做 Group Runner,什麼是 Group Runner 我們今天待會會講道。 Gitlab Runner 類型 我們可以看到官網文件,Gitlab 提供了三種 Runner 類型,第一種叫 Sha
前言 大家好上次教 Gitlab CI/CD 如何撰寫 CI/CD 腳本,使用 ssh 自動連線目標主機,很受到大家關注,在這裡先跟大家說一聲謝謝,以後會繼續做有意義的文章給各位,今天要教大家如何使用 scp 這個使令,將我們的檔案複製到目標主機,並進行佈署動作,我們之後會使用 Docker Co
前言 上次我們教到完了怎麼在 Gitlab CI/CD 怎麼自動打包 Docker Image 並自動上傳到 Docker Hub 以及如何將 Docker Image 做版號,今天我們來教 Gitlab CI/CD 其中之一很重要的是自動 ssh 連線,因為往後我們會透過 Gitlab 伺服器使
前言 上次我們教到如何使用 Gitlab CI/CD 自動打包 Docker Image,並自動上傳 Docker Image 到 Docker Hub 存放我們的 Image,今天我們要再做一件事情,也就是當我們上傳 Image 時,除的上傳自動最新 Image,還要自動掛載版號 jq 工具使
前言 上次我們教到如何打包 Docker Image,而今我們要交如何將我們打包好的 Docker Image 自動化上傳到 Docker Hub,這樣的話不但可以減輕我們的工作,也可以讓我們為的的佈署新服務更有效率 設定隱藏變數 在我們設定裡面,設定我們 CI/CD 變數,我們在這裡設定我們
前言 上次我們教到 Group Runner 使用方式,今天我們要教在 CI/CD 過程,自動打包 Docker Image 上去到我們的 Docker Registry,本次講解我們使用 Docker Hub 作為練習,透過 Gitlab CI/CD 自動上傳到 Docker Hub,我們會分成
前言 上次我們教到 GitLab CI/CD 的 artifacts,今天我們要來講一個叫做 Group Runner,什麼是 Group Runner 我們今天待會會講道。 Gitlab Runner 類型 我們可以看到官網文件,Gitlab 提供了三種 Runner 類型,第一種叫 Sha
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
Thumbnail
GitLab 是一個強大的程式碼託管和協作平台,而 GitLab Runner 是一個用於執行自動化測試和部署的工具。透過 Docker,您可以輕鬆新增 GitLab Runner 到您的環境中,提供更快速、可擴展的開發流程。以下就示範利用Docker新增GitLab Runner
Thumbnail
在 Docker 上自建 GitLab Server 是一種方便且有效的方式來託管和管理您的程式碼。使用 Docker,您可以快速建立一個 GitLab 伺服器並且輕鬆進行配置和擴展。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
安裝與設定所需依賴 安裝依賴套件 2. 啟動 SSH 服務 3. 防火牆開啟網頁要用的PORT網頁 4. 安裝 SMTP Server (Postfix),發送通知email用 添加gitlab repo以及安裝package Add Gitlab package 可自行選擇要安裝CE版還是EE版,
Thumbnail
第二季度非公認會計原則每股收益為 -0.15美元,高於預期 0.08 美元。 收入 1.01 億美元(同比增長 73.8%)超過 660 萬美元。 非美國通用會計準則營業利潤率為 -27%。
Thumbnail
GitLab有分為CE(社區版)與EE(企業收費版)兩個版本,差別在EE有多出一些額外功能需要收費,EE的免費功能其實跟GitLab CE一樣,因此可以直接架設 GitLab EE,也許以後會想用收費功能也說不定。 1. 抓取gitlab image: $ docker pull gitlab/gi
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
本篇使用最簡單的GitLab-ci.yml內容,進而實現了CI的功能,操作方式文章所示。
Thumbnail
GitLab 是一個強大的程式碼託管和協作平台,而 GitLab Runner 是一個用於執行自動化測試和部署的工具。透過 Docker,您可以輕鬆新增 GitLab Runner 到您的環境中,提供更快速、可擴展的開發流程。以下就示範利用Docker新增GitLab Runner
Thumbnail
在 Docker 上自建 GitLab Server 是一種方便且有效的方式來託管和管理您的程式碼。使用 Docker,您可以快速建立一個 GitLab 伺服器並且輕鬆進行配置和擴展。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
安裝與設定所需依賴 安裝依賴套件 2. 啟動 SSH 服務 3. 防火牆開啟網頁要用的PORT網頁 4. 安裝 SMTP Server (Postfix),發送通知email用 添加gitlab repo以及安裝package Add Gitlab package 可自行選擇要安裝CE版還是EE版,
Thumbnail
第二季度非公認會計原則每股收益為 -0.15美元,高於預期 0.08 美元。 收入 1.01 億美元(同比增長 73.8%)超過 660 萬美元。 非美國通用會計準則營業利潤率為 -27%。
Thumbnail
GitLab有分為CE(社區版)與EE(企業收費版)兩個版本,差別在EE有多出一些額外功能需要收費,EE的免費功能其實跟GitLab CE一樣,因此可以直接架設 GitLab EE,也許以後會想用收費功能也說不定。 1. 抓取gitlab image: $ docker pull gitlab/gi