cicd
This commit is contained in:
parent
195364a42f
commit
e24ffcedeb
|
@ -0,0 +1,71 @@
|
|||
stages:
|
||||
- build
|
||||
- test
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
# 定义全局变量
|
||||
DOCKER_IMAGE: "bunny-auth-server:4.0.0"
|
||||
|
||||
# 定义在所有作业之前运行的脚本
|
||||
before_script:
|
||||
- echo "Starting CI/CD pipeline"
|
||||
|
||||
build-job:
|
||||
stage: build
|
||||
script:
|
||||
- echo "Compiling the code..."
|
||||
- mvn package # 如果是Java项目
|
||||
# 或 npm run build # 如果是Node.js项目
|
||||
artifacts:
|
||||
paths:
|
||||
- target/*.jar # 保存构建产物
|
||||
only:
|
||||
- master # 只在master分支运行
|
||||
|
||||
unit-test:
|
||||
stage: test
|
||||
script:
|
||||
- echo "Running unit tests..."
|
||||
- mvn test
|
||||
# 或 npm test
|
||||
|
||||
integration-test:
|
||||
stage: test
|
||||
script:
|
||||
- echo "Running integration tests..."
|
||||
- mvn verify
|
||||
needs: ["unit-test"] # 依赖unit-test完成
|
||||
|
||||
deploy-prod:
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "Deploying to production..."
|
||||
- scp target/*.jar user@production-server:/app/
|
||||
when: manual # 需要手动触发
|
||||
only:
|
||||
- master
|
||||
|
||||
build-docker:
|
||||
stage: build
|
||||
image: docker:latest
|
||||
services:
|
||||
- docker:dind
|
||||
script:
|
||||
- docker build -t $DOCKER_IMAGE .
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker push $DOCKER_IMAGE
|
||||
|
||||
deploy-staging:
|
||||
stage: deploy
|
||||
script:
|
||||
- echo "Deploying to staging environment"
|
||||
environment:
|
||||
name: staging
|
||||
url: https://staging.example.com
|
||||
|
||||
test-multiple-versions:
|
||||
stage: test
|
||||
parallel: 5
|
||||
script:
|
||||
- echo "Testing with version $CI_NODE_INDEX"
|
Loading…
Reference in New Issue