46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: build-by-tag
|
|
|
|
node:
|
|
name: pve
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
ref:
|
|
- refs/tags/v*
|
|
|
|
steps:
|
|
- name: build-and-push
|
|
image: docker:dind
|
|
privileged: true
|
|
environment:
|
|
REGISTRY: harbor.seahi.me
|
|
IMAGE_NAME: stu/versions-for-swarm
|
|
HARBOR_USERNAME:
|
|
from_secret: harbor_username
|
|
HARBOR_PASSWORD:
|
|
from_secret: harbor_password
|
|
commands:
|
|
- echo $HARBOR_PASSWORD | docker login $REGISTRY -u $HARBOR_USERNAME --password-stdin
|
|
- export VERSION=${DRONE_TAG}
|
|
- echo [BUILD] 构建版本 $VERSION
|
|
- |
|
|
if echo "$VERSION" | grep -q "buggy"; then
|
|
BUGGY_FLAG="--build-arg BUGGY=true"
|
|
echo [WARNING] 检测到 buggy 版本,启用故障模式
|
|
else
|
|
BUGGY_FLAG=""
|
|
fi
|
|
- docker build --build-arg APP_VERSION=$VERSION $BUGGY_FLAG -t $REGISTRY/$IMAGE_NAME:$VERSION .
|
|
- |
|
|
if [ "$VERSION" = "v2.1" ]; then
|
|
docker tag $REGISTRY/$IMAGE_NAME:$VERSION $REGISTRY/$IMAGE_NAME:latest
|
|
docker push $REGISTRY/$IMAGE_NAME:latest
|
|
echo [TAG] 已标记为 latest
|
|
fi
|
|
- docker push $REGISTRY/$IMAGE_NAME:$VERSION
|
|
- docker system prune -f
|
|
- echo [SUCCESS] 版本 $VERSION 构建并推送成功
|