116 lines
3.6 KiB
YAML
116 lines
3.6 KiB
YAML
|
|
---
|
||
|
|
version: 2
|
||
|
|
plan:
|
||
|
|
project-key: EHR
|
||
|
|
key: MFR
|
||
|
|
name: MDMDS FRONTEND CI
|
||
|
|
stages:
|
||
|
|
- app-ci:
|
||
|
|
manual: false
|
||
|
|
final: false
|
||
|
|
jobs:
|
||
|
|
- helmchart-ci
|
||
|
|
- docker-ci
|
||
|
|
helmchart-ci:
|
||
|
|
key: HEL
|
||
|
|
docker:
|
||
|
|
image: jie3324/azure-cli
|
||
|
|
volumes:
|
||
|
|
${bamboo.working.directory}: ${bamboo.working.directory}
|
||
|
|
${bamboo.tmp.directory}: ${bamboo.tmp.directory}
|
||
|
|
docker-run-arguments: []
|
||
|
|
tasks:
|
||
|
|
- checkout:
|
||
|
|
force-clean-build: 'false'
|
||
|
|
- script:
|
||
|
|
interpreter: SHELL
|
||
|
|
scripts:
|
||
|
|
- |-
|
||
|
|
image_name=${bamboo.appname}
|
||
|
|
image_tag=0.${bamboo.buildNumber}
|
||
|
|
ls -l
|
||
|
|
|
||
|
|
az version
|
||
|
|
az cloud set -n AzureChinaCloud
|
||
|
|
az login --service-principal -u ${bamboo.client_id} -p ${bamboo.client_secret} --tenant ${bamboo.tenant_id}
|
||
|
|
|
||
|
|
az acr helm repo add -n ${bamboo.acr_repo}
|
||
|
|
az acr helm list -n ${bamboo.acr_repo} --query 'keys(@)' -o tsv
|
||
|
|
|
||
|
|
#helm package
|
||
|
|
helm package helmcharts --version $image_tag
|
||
|
|
ls -l
|
||
|
|
|
||
|
|
#helm push
|
||
|
|
az acr helm push --name ${bamboo.acr_repo} ${image_name}-${image_tag}.tgz
|
||
|
|
az acr helm list -n ${bamboo.acr_repo} --query 'keys(@)' -o tsv
|
||
|
|
az acr helm list -n ${bamboo.acr_repo} --query '"'${image_name}'"[].version' -o tsv
|
||
|
|
docker-ci:
|
||
|
|
key: JOB1
|
||
|
|
docker:
|
||
|
|
image: jie3324/docker-agent-ci:npm
|
||
|
|
volumes:
|
||
|
|
${bamboo.working.directory}: ${bamboo.working.directory}
|
||
|
|
${bamboo.tmp.directory}: ${bamboo.tmp.directory}
|
||
|
|
/var/run: /var/run
|
||
|
|
docker-run-arguments:
|
||
|
|
- --privileged
|
||
|
|
tasks:
|
||
|
|
- checkout:
|
||
|
|
force-clean-build: 'false'
|
||
|
|
- script:
|
||
|
|
interpreter: SHELL
|
||
|
|
scripts:
|
||
|
|
- |-
|
||
|
|
image_name=${bamboo.appname}
|
||
|
|
image_tag=0.${bamboo.buildNumber}
|
||
|
|
|
||
|
|
npm install
|
||
|
|
npm run build
|
||
|
|
|
||
|
|
cat <<EOF > default.conf
|
||
|
|
server {
|
||
|
|
listen 80;
|
||
|
|
server_name localhost;
|
||
|
|
|
||
|
|
access_log /var/log/nginx/host.access.log main;
|
||
|
|
error_log /var/log/nginx/error.log error;
|
||
|
|
|
||
|
|
location / {
|
||
|
|
root /html;
|
||
|
|
index index.html index.htm;
|
||
|
|
}
|
||
|
|
|
||
|
|
error_page 500 502 503 504 /50x.html;
|
||
|
|
location = /50x.html {
|
||
|
|
root html;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
EOF
|
||
|
|
|
||
|
|
cat <<EOF > Dockerfile
|
||
|
|
FROM nginx:alpine
|
||
|
|
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone
|
||
|
|
COPY dist html
|
||
|
|
COPY default.conf /etc/nginx/conf.d/default.conf
|
||
|
|
EOF
|
||
|
|
|
||
|
|
pwd && ls -l
|
||
|
|
|
||
|
|
# Get acr password from keyvault
|
||
|
|
tenant_id=${bamboo.tenant_id}
|
||
|
|
client_id=${bamboo.client_id}
|
||
|
|
client_secret=${bamboo.client_secret}
|
||
|
|
jwt=`curl --location --request POST "https://login.chinacloudapi.cn/$tenant_id/oauth2/token?api-version=1.0" \
|
||
|
|
--data-urlencode "grant_type=client_credentials" \
|
||
|
|
--data-urlencode "resource=https://vault.azure.cn" \
|
||
|
|
--data-urlencode "client_id=$client_id" \
|
||
|
|
--data-urlencode "client_secret=$client_secret" |awk -F 'access_token' '{print $2}'|awk -F '"' '{print $3}'`
|
||
|
|
acr_password=`curl -k --request GET -H "Content-type: application/json;charset=UTF-8" -H "Authorization: Bearer $jwt" -s https://${bamboo.keyvault}.vault.azure.cn/secrets/acr-passwd?api-version=7.2 |awk -F '"' '{print $4}'`
|
||
|
|
|
||
|
|
docker build -t ${bamboo.acr_repo}.azurecr.cn/${image_name}:${image_tag} .
|
||
|
|
docker login ${bamboo.acr_repo}.azurecr.cn -u ${bamboo.acr_user} -p ${acr_password}
|
||
|
|
docker push ${bamboo.acr_repo}.azurecr.cn/${image_name}:${image_tag}
|
||
|
|
variables:
|
||
|
|
appname: mdmds-frontend
|