Mad*_*iha 5 deployment continuous-integration azure gitlab
我有一个托管在gitlab.com上的存储库,它有几个与之关联的构建作业.我希望能够将任何给定构建的编译工件(通常以HTML/CSS/JavaScript编译文件的形式)部署到azure.
所有导游/文档/教程到目前为止,我已经看到了(1,2,3,仅举几例),专注于直接从一个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
Run Code Online (Sandbox Code Playgroud)
在部署作业中,CI_PROJECT_DIR 中只有一个目录包含./web
构建作业生成的所有文件。
结帐存储快速入门 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
Run Code Online (Sandbox Code Playgroud)
将./web复制到存储容器
出于安全原因,我们不应出口.gitlab-ci.yml
:
export AZURE_STORAGE_ACCOUNT="mystorageaccountname"
export AZURE_STORAGE_ACCESS_KEY="myStorageAccountKey"
Run Code Online (Sandbox Code Playgroud)
但它们应该在project_or_group/settings/ci_cd环境变量中定义,这样它们就会出现在脚本环境中。
归档时间: |
|
查看次数: |
1672 次 |
最近记录: |