使用路徑排除規則在驗證執行時,將中性狀態張貼至 GitHub

透過此更新,我們已包含 Azure Pipelines 的多個更新。 在 YAML 管線上,我們會將所有管線的拒絕存取設定為受保護資源的預設。 此外,Azure Pipelines 會在決定不會因為路徑排除規則而不要執行驗證組建時,將中性狀態張貼回 GitHub。

如需詳細資訊,請參閱下列功能描述。

注意

在 2021 年 9 月 28 日,Azure DevOps 收到 Axosoft 在其熱門 Git GUI 用戶端的相依性中收到弱點的通知 – GitKraken。 請參閱 部落格文章 ,以深入瞭解詳細資料。

Azure Pipelines

Azure Pipelines

略過組建時,將中性狀態張貼至 GitHub

使用 Azure Pipelines,您一律可以在 GitHub 中 驗證提取要求 。 您也可以指定 GitHub 存放庫中應該觸發管線 的路徑 。 例如,在分支中 main 推送 code 變更時,會觸發下列管線,但在將變更推送至 docs 資料夾時不會觸發。

trigger: none

pr:
 branches:
   include:
     - main
 paths:
   include:
     - code
   exclude:
     - docs

pool:
  vmImage: ubuntu-latest

steps:
- script: echo Hello, world!
  displayName: 'Run a one-line script'

管線完成後,Azure Pipelines 會將狀態張貼回 GitHub。 如果您的 GitHub 存放庫有分支保護原則生效,則 Azure Pipelines 所張貼的狀態會決定提取要求是否要合併。

在上述範例中,如果您變更 docs ,GitHub 目前會封鎖提取要求,等候 Azure Pipelines 傳回狀態。 不過,Azure Pipelines 不會執行驗證組建,因為該路徑已從觸發程式中排除,因此無法完成提取要求。 客戶設定單一 GitHub 存放庫的路徑排除觸發程式或多個管線,通常面臨此挑戰。

接下來,Azure Pipelines 會在決定不會因為路徑排除規則而執行驗證組建時,將狀態張貼 neutral 回 GitHub。 這會為 GitHub 提供清楚的方向,指出 Azure Pipelines 已完成其處理。

交談檢視:

交談檢視

檢查詳細資料:

檢查詳細資料

預設會關閉受保護資源中所有管線的存取權

YAML 管線可以依賴一或多個 受保護的資源。 服務連線、代理程式組件區、變數群組、安全檔案和存放庫都是受保護資源的範例,因為這類資源的系統管理員可以控制哪些管線可以存取該資源。 系統管理員會使用資源的安全性設定面板來啟用或停用管線。

當您建立其中一個資源時,除非明確關閉,否則預設體驗會授與所有管線的存取權。 接下來,為了改善整體安全性狀態,預設值會設定為拒絕所有管線的存取。 若要授與所有管線的存取權,只要開啟建立體驗中的切換,或在建立資源之後即可。

新的 Azure 服務連線

使用裝飾專案在指定的目標工作之前或之後插入工作

裝飾專案 是自動將工作插入管線的方法。 組織中央小組通常會使用它們來自動執行必要的合規性程式。 裝飾專案可以搭配傳統組建、傳統版本或 YAML 管線使用。

目前,工作可以透過每個作業開頭的裝飾專案、在每個作業結束時,或在簽出工作之後直接插入。 若要控制此情況,您可以在裝飾專案延伸模組的參與區段中指定 , target如這裡所述。 我們現在展開目標清單以包含下列專案:

ms.azure-pipelines-agent-job.pre-task-tasks
ms.azure-pipelines-agent-job.post-task-tasks
ms.azure-release-pipelines-agent-job.pre-task-tasks
ms.azure-release-pipelines-agent-job.post-task-tasks

以下是將工作實例插入管線之前 PublishPipelineArtifacts ,將工作插入工作的裝飾專案範例。

{
    "manifestVersion": 1,
    "contributions": [
        {
            "id": "my-required-task",
            "type": "ms.azure-pipelines.pipeline-decorator",
            "targets": [
                "ms.azure-pipelines-agent-job.pre-task-tasks"
            ],
            "properties": {
                "template": "my-decorator.yml",
                "targettask": "ECDC45F6-832D-4AD9-B52B-EE49E94659BE"
            }
        }
    ],
    "files": [
        {
            "path": "my-decorator.yml",
            "addressable": true,
            "contentType": "text/plain"
        }
    ]
}

宣佈 Windows 2016 託管映射的淘汰排程

最近,我們已將 Windows 2022 設為託管映射。 隨著 2022年 1 月 Windows 2016 的主要支援即將結束,我們即將從 11 月 15 日開始淘汰 vs2017-win2016 映射。 此映射的完整淘汰計畫為 2022 年 3 月。 由於這是常用的映射,因此我們想要提供您足夠的通知和時間,以對您的管線進行必要的變更。

請參閱我們的 部落格文章 ,詳細說明如何使用 Windows 2016 託管映射尋找所有專案和管線,以及您可以採取的步驟來移轉至較新版本。

宣佈取代 macOS 10.14 裝載的映射

最近,我們已將 macOS-11 當作託管映射提供。 因此,我們將在 2021 年 12 月淘汰 macOS-10.14 映射。 一旦映射已被取代,依賴此映射的組建將會失敗。 您可以從我們的 部落格文章找到有關淘汰各種影像的詳細資訊。

後續步驟

注意

這些功能將在接下來兩到三周推出。

請前往 Azure DevOps 並查看。

如何提供意見反應

我們希望聽到您對這些功能的想法。 使用說明功能表來回報問題或提供建議。

提供建議

您也可以在 Stack Overflow上取得社群所回答的建議和問題。

感謝您!

Vijay Machiraju