Files
mdmdms_fs_prod/mdmds/bamboo-specs/bamboo.yaml

116 lines
3.6 KiB
YAML
Raw Normal View History

2025-12-19 14:26:09 +08:00
---
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