日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用YAML文件描述流水線

更新時(shí)間:

流水線配置中,支持指定YAML文件,用于描述如何在Serverless應(yīng)用中心上運(yùn)行流水線,來構(gòu)建或發(fā)布Serverless應(yīng)用。本文介紹如何配置YAML文件以及文件中預(yù)定義的字段含義。

背景信息

YAML配置文件描述了流水線運(yùn)行所需要的流水線對(duì)象以及流水線模板對(duì)象的數(shù)據(jù)結(jié)構(gòu),當(dāng)您的代碼倉(cāng)庫(kù)發(fā)生變更時(shí),會(huì)通過Webhook觸發(fā)應(yīng)用中心,并按照配置文件的描述執(zhí)行流水線動(dòng)作。

采用配置文件描述流水線運(yùn)行的方式,是應(yīng)用中心比較推薦的DevOps實(shí)踐。您可以在創(chuàng)建應(yīng)用階段指定或新建該YAML配置文件,也可以在環(huán)境中指定或新建該YAML配置文件。關(guān)于如何指定YAML文件,請(qǐng)參見管理流水線

前提條件

  • 您已了解流水線及流水線模板相關(guān)概念。更多信息,請(qǐng)參見流水線流水線模板

  • 創(chuàng)建一個(gè)應(yīng)用中心支持的Git倉(cāng)庫(kù),并擁有管理權(quán)限。您也可以使用應(yīng)用中心在創(chuàng)建新應(yīng)用過程中,創(chuàng)建并初始化的Git倉(cāng)庫(kù)。

  • 在Git倉(cāng)庫(kù)根目錄創(chuàng)建一個(gè)YAML配置文件,本文以創(chuàng)建的cicd.yaml文件為例進(jìn)行介紹。

配置YAML文件

YAML文件支持添加對(duì)流水線的描述,在流水線中引用模板或直接描述流水線的運(yùn)行方式(推薦)。示例如下。

---
# 提交流水線執(zhí)行
kind: Pipeline
# 流水線執(zhí)行名稱,需要全局唯一。推薦使用commitID與時(shí)間戳構(gòu)造唯一的名稱
name: "p-<% .git.shortCommitId %>-<% .currentTimestampMs %>"
# 一些任意的描述信息
description: 'demo pipeline'
spec:
  context:
    data:
      ## 全局釘釘通知配置,覆蓋模板中的配置
      #dingdingNotification:
      #  # 設(shè)置全局關(guān)閉釘釘通知,下面可以按需打開
      #  enable: false
      #  # 設(shè)置在任務(wù)執(zhí)行成功時(shí)跳過通知
      #  skipOnSuccess: false
      #  # 釘釘通知webhook配置
      #  webhook: https://oapi.dingtalk.com/robot/send?access_token=xxx
      #  # 釘釘通知的簽名密鑰
      #  secret: xxx
      #  # 釘釘通知的內(nèi)容。不要統(tǒng)一配置text,除非目的是統(tǒng)一通知的內(nèi)容
      #  message:
      #    at:
      #      isAtAll: false
      #      atUserIds: ["admin"]
      #      atMobiles: ["188xxxx8888"]
      #    msgtype: text
      #    # text支持模板語法,模板可以獲取到當(dāng)前執(zhí)行的狀態(tài)以及異常信息
      #    text: |
      #      task finished.
      #      TaskName: {{ .currentTask.name }}
      #      Success: {{ .success }}
      #      Status: {{ .currentTask.status.phase }}
      # 通過s工具部署,指定s.yaml文件位置,觸發(fā)時(shí)會(huì)自動(dòng)填入
      # deployFile: s.yaml
      # 應(yīng)用中心所在的應(yīng)用名稱,觸發(fā)時(shí)會(huì)自動(dòng)填入
      appName: <% .appName %>
      # 倉(cāng)庫(kù)中s.yaml文件的位置。這里是指在根路徑中的s.yaml文件
      deployFile: s.yaml
  # 本次執(zhí)行使用的流水線模板描述。現(xiàn)在應(yīng)用中心支持在流水線中內(nèi)置模板描述
  templateSpec:
    tasks:
    - name: pre-check
      context:
        data:
          displayName: "前置檢查"
          enable: true
          steps:
            - plugin: "@serverless-cd/checkout"
            - plguin: "@serverless-cd/s-setup"
            - run: s plan -t "${{ ctx.data.deployFile }}"
      taskTemplate: serverless-runner-task
      runAfters: []
    - name: pre-check-approval
      context:
        data:
          displayName: "人工審核"
          enable: true
      taskTemplate: need-approval
      runAfters:
      - name: pre-check
    - name: build-and-deploy
      context:
        data:
          displayName: "構(gòu)建部署"
          enable: true
          steps:
            - plugin: "@serverless-cd/checkout"
            - plugin: "@serverless-cd/s-setup"
            - run: s deploy -t "${{ ctx.data.deployFile }}" --use-local --assume-yes --skip-push
      taskTemplate: serverless-runner-task
      runAfters: 
      - name: pre-check-approval
        
---

上述示例中,當(dāng)滿足條件的Git事件產(chǎn)生時(shí),會(huì)產(chǎn)生一條名稱為p-<% .git.shortCommitId %>-<% .currentTimestampMs %>的流水線,并依次執(zhí)行前置檢查、人工審核與構(gòu)建部署三個(gè)任務(wù)。每個(gè)任務(wù)中,又分別使用流水線插件與Shell命令描述任務(wù)的具體執(zhí)行步驟。

YAML文件預(yù)定義變量

應(yīng)用中心提供以下預(yù)置的變量,在觸發(fā)時(shí)會(huì)將YAML文件中的占位符替換為變量對(duì)應(yīng)的值,再提交文件描述的流水線以及任務(wù)對(duì)象。

名稱

解釋

示例

<% .appName %>

應(yīng)用名稱。

headless-ffmpeg-wcha

<% .accountId %>

阿里云賬號(hào)(主賬號(hào))ID。

143199913651****

<% .releaseVersion %>

當(dāng)前執(zhí)行流水線的部署版本。

1676913428****

<% .envName %>

當(dāng)前流水線所在的環(huán)境。

staging

<% .git.branch %>

當(dāng)前流水線所在分支。

test

<% .git.commitId %>

本次Git操作中HEAD Commit的CommitId。

3b6b823cea88c356b10442580da5a02cde4****

<% .git.shortCommitId %>

本次Git操作中HEAD Commit的CommitId前7位。

3b6b823

<% .git.commitMessage %>

本次Git操作中HEAD Commit的Message內(nèi)容。

update .s file

<% .git.tag %>

本次Git操作中的tag名稱(如果存在tag)。

dev

<% .git.author %>

本次Git操作的作者。

developer

<% .git.action %>

本次Git操作的行為名稱。

push

<% .currentTimestampMs %>

執(zhí)行部署時(shí)的時(shí)間戳,單位為毫秒。

1676971965781

<% .currentTimestampS %>

執(zhí)行部署時(shí)的時(shí)間戳,單位為秒。

1676971891

<% .randomString6 %>

隨機(jī)6位字符串。

abcdef