Commit 2f091680 authored by biao.dong's avatar biao.dong

feat: 添加 GitLab CI/CD 发布配置

parent af354436
stages:
- build
- test
- publish
- release
image: maven:3.8.6-openjdk-17
variables:
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end -Dmaven.test.skip=true"
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/maven"
cache:
key: "${CI_COMMIT_REF_SLUG}"
paths:
- .m2/repository/
- target/
build-job:
stage: build
script:
- mvn $MAVEN_CLI_OPTS clean compile
artifacts:
paths:
- target/
expire_in: 1 hour
test-job:
stage: test
script:
- mvn $MAVEN_CLI_OPTS test
dependencies:
- build-job
publish-snapshot:
stage: publish
script:
- mvn $MAVEN_CLI_OPTS -DskipTests deploy -DaltDeploymentRepository=gitlab-maven::default::${PACKAGE_REGISTRY_URL}
only:
- develop
publish-release:
stage: publish
script:
- mvn $MAVEN_CLI_OPTS -DskipTests deploy -DaltDeploymentRepository=gitlab-maven::default::${PACKAGE_REGISTRY_URL}
only:
- tags
create-release:
stage: release
image: curlimages/curl:latest
script:
- |
RELEASE_VERSION="${CI_COMMIT_TAG}"
RELEASE_NOTES="Automated release for version ${RELEASE_VERSION}"
# 创建 GitLab Release
curl --header "Content-Type: application/json" \
--header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \
--data "{
\"name\": \"Release ${RELEASE_VERSION}\",
\"tag_name\": \"${RELEASE_VERSION}\",
\"description\": \"${RELEASE_NOTES}\"
}" \
--request POST \
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases"
# 可选:上传 JAR 文件到 Release
# 首先找到最新构建的 JAR 文件
JAR_FILE=$(find target -name "*.jar" | head -n 1)
if [ -n "$JAR_FILE" ]; then
echo "Uploading $JAR_FILE to release"
curl --header "PRIVATE-TOKEN: ${CI_JOB_TOKEN}" \
--upload-file "$JAR_FILE" \
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/releases/${RELEASE_VERSION}/assets/${JAR_FILE##*/}"
fi
only:
- tags
\ No newline at end of file
......@@ -31,7 +31,7 @@ redis.port=${REDIS_SERVICE_PORT_6379}
<dependency>
<groupId>com.example</groupId>
<artifactId>eos-config-loader</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</dependency>
```
#### 2.在 application.yml 中添加:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment