今天我 devops 了一下
public int sum(int a, int b) {
return b + a;
}
public int sum(int a, int b) {
return a + b;
}
git commit -am "修改了底層的計算邏輯,提升了代碼的可讀性,同時對調用方保持兼容和透明"
git push

name: pm-api-display
# 設置 master 分支在產生代碼 push 時精確觸發(fā)(PRECISE)構建
triggers:
push:
- matchType: PRECISE
branch: master
commitMessage: ''
# 構建階段配置
stages:
- stage:
name: spring-boot-stage
displayName: 'Spring Boot Stage'
failFast: false
# 構建步驟配置
steps:
# 第一步
- step: mavenbuild@1
...
# 第二步
- step: agent-deploy@1
...
- step: mavenbuild@1 # 采用 Maven 編譯環(huán)境
name: spring-boot-build-step # 定義一個 ID 標識為 spring-boot-build-step ,名為「編譯構建」的階段
displayName: '編譯構建'
inputs: # 構建輸入參數設定
jdkVersion: 8 # 指定 JDK 環(huán)境版本為 1.8
mavenVersion: 3.6 # 指定 Maven 環(huán)境版本為 3.6
goals: | # 使用 mvnw 打包編譯,并將構建的 Jar 包
mvn clean package
mkdir output-artifact
cp target/*.jar output-artifact/
cp target/start.sh output-artifact/
cp target/Dockerfile output-artifact/
uploadArtifact: true # 構建完成后是否將構建物作為制品產出,非必填項,與下方上傳參數需同時定義
uploadArtifactOptions: # 構建物上傳參數,非必填項,與 `uploadArtifact` 參數需同時定義
artifactPath: './output-artifact' # 構建完成后要打包的構建物所在路徑
artifactRepository: 'zhipinku' # 制品庫名稱,可以理解為一批構建物的集合
artifactName: 'spring-boot-jar' # 構建物打包后的制品名

- step: agent-deploy@1 # 定義通過 SA 部署插件
name: deploy # Step 唯一標識
dependsOn: spring-boot-build-step
displayName: '部署發(fā)布' # Step 顯示名稱
inputs: # Step 入參
hostGroupID: 'aliyun' # 指定部署主機組ID
minComplicating: 0 # 允許的最小并發(fā)部署數量
maxComplicating: 2 # 允許的最大并發(fā)部署數量
deployArtifact: # 上傳的制品項
- name: 'compiled-artifact' # 上傳部署的制品名(僅作為顯示,無具體作用,允許重復)
source: build@spring-boot-stage/spring-boot-build-step # 部署制品文件引用自上游流水線 Stage/Step 的制品
artifactRepository: 'compiled-artifact' # 當制品引用自流水線,此參數可忽略
artifactName: 'server' # 當制品引用自流水線,此參數可忽略
target: /data # 目標機器制品上傳目錄
isForce: true # 當目標存在時是否強制覆蓋,默認為 true,可選
script: | # 部署腳本,到目標機器制品上傳目錄解壓并啟動構建程序,并通過curl檢測
cd /data
ls
tar -zxf spring-boot-jar.tar.gz
cd output-artifact
if test -z "$(docker ps -a -f NAME=pm-api -q)"; then echo "new docker run"; else docker rm -f $(docker ps -a -f NAME=pm-api -q); fi
if test -z "$(docker images pm-api:0.1 -aq)"; then echo "new docker images"; else docker rmi -f $(docker images pm-api:0.1 -aq); fi
docker build -t pm-api:0.1 .
docker run -dit --name pm-api -p 8080:8080 pm-api:0.1
echo "Deploy Success"
sleep 10
curl 127.0.0.1:8080



docker build -t pm-api:0.1 .
docker run -dit --name pm-api -p 8080:8080 pm-api:0.1

評論
圖片
表情
