簡體   English   中英

如何將構建工件從GitLab CI部署到Azure應用服務?

[英]How can one deploy build artifacts from GitLab CI to an Azure app service?

我有一個托管在gitlab.com上的存儲庫,它有幾個與之關聯的構建作業。 我希望能夠將任何給定構建的編譯工件(通常以HTML / CSS / JavaScript編譯文件的形式)部署到azure。

所有導游/文檔/教程到目前為止,我已經看到了( 123 ,僅舉幾例),專注於直接從一個Git倉庫,我可以看到在某些情況下是有用的部署文件,但是,這不是”在這種情況下我需要什么,因為我想要編譯目標,而不是源代碼。

解決方案受到歡迎,我們幾天來一直在抨擊這個問題。

GitLab的替代方案(如果它不在GitLab中)也將受到歡迎。

從作業或更多作業添加具有構建依賴關系的部署階段,從而下載這些作業的工件,如下所示.gitlab-ci.yml:

stages:
- build
- ...
- deploy

buildjob:1:
  stage: build
  script:
  - build_to_web_dir.sh
  artifacts:
    paths:
     - web

buildjob:2:
  stage: build
  script:
  - build_to_web_dir.sh
  artifacts:
    paths:
     - web

deploy:
  stage: deploy
  GIT_STRATEGY: none
  image:  microsoft/azure-cli
  dependencies:
   - buildjob:1
   - buildjob:2
  script:
  - export containerName=mynewcontainername
  - export storageAccount=mystorageaccount
  - az storage blob delete-batch --source ${containerName} --account-name ${storageAccount} --output table
  - az storage blob upload-batch --source ./web --destination ${containerName} --account-name ${storageAccount} --output table --no-progress

在部署作業中,只有一個目錄位於CI_PROJECT_DIR ./web其中包含構建作業生成的所有文件。

checkout storage quickstart azure用於創建和設置存儲容器,帳戶詳細信息等。

對於部署階段,我們可以使用microsoft/azure-cli docker鏡像,因此我們可以從腳本中調用az命令,有關詳細說明,請參閱storage-quickstart-blobs-cli

az storage blob upload-batch --source ./web --destination ${containerName} --account-name ${storageAccount} --output blobname --no-progress

將./web復制到存儲容器中

出於安全原因,我們不應在.gitlab-ci.yml

export AZURE_STORAGE_ACCOUNT="mystorageaccountname"
export AZURE_STORAGE_ACCESS_KEY="myStorageAccountKey"

但是它們應該在project_or_group / settings / ci_cd環境變量中定義,因此它們將出現在腳本環境中。

暫無
暫無

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

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