簡體   English   中英

Azure 發布管道:通過提交同步文件

[英]Azure release pipeline: synce files with commit

我第一次使用 Azure VM(Linux、Ubuntu 18),我的任務是為一個簡單的網站的持續開發設置管道/發布

它應該是這樣工作的:當 master 分支提交到 Azure 時,自動運行管道並發布以將其部署到 VM 中的目錄(不涉及構建,是一個簡單的 Wordpress 站點)

我設法讓它像這樣工作:

  1. 我設置了一個管道,它只從 git 獲取代碼並將其復制到 $(Build.ArtifactStagingDirectory) (使用復制文件任務)
  2. 而不是將其發布為工件(使用發布工件任務)

然后是一個執行以下操作的發布管道:

  1. 將工件文件復制到目錄(再次使用復制文件任務)

它正在工作,但看起來不錯。 有一些明顯的問題:

  1. 很慢:它每次都會復制所有文件,而不僅僅是更改的文件
  2. 如果我刪除一個文件,它不會在部署目錄中刪除

所以我想要的是某種方式將 git commit 與站點目錄同步,僅覆蓋更改的文件並刪除任何已刪除的文件,忽略 .git-ignore 上的文件和目錄等

看起來很簡單(我知道如何用 git hooks 來做),但我只是找不到在 Azure DevOps 中做到這一點的方法

是否可以? 誰能給我一個方向?

Azure 發布管道:通過提交同步文件

Azure devops 構建/發布不支持僅構建/發布更改的文件,因為僅構建/發布更改的文件並不總是有意義並且無法歸檔項目打算發布的內容。

但是我們可以比較每次上傳/發布文件 -> 與新提交的信息進行比較 -> 僅發布更改的文件:

內聯powershell:

cd $(System.DefaultWorkingDirectory)

get-childitem $(System.DefaultWorkingDirectory) -recurse | Foreach { 
        $lastupdatetime=$_.LastWriteTime; 
        $nowtime=get-date; 
        if(($nowtime - $lastupdatetime).totalhours -le 48) { 
          Write-Host $_.fullname 
        } 
        else{ 
          remove-item $_.fullname -Recurse -Force 
        } 
      }

以上 powershell 腳本將列出過去 48 小時內修改過的所有文件。

您可以查看此線程以獲取更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM