maven-public
(1)
<url>https://repo.liming.pub/nexus/repository/maven-public/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-public</id>
(1)
<url>https://repo.liming.pub/nexus/repository/maven-public/</url>
</pluginRepository>
</pluginRepositories>
<distributionManagement>
<repository>
<id>maven-releases</id>
(2)
<url>https://repo.liming.pub/nexus/repository/maven-public-releases/</url>
</repository>
<snapshotRepository>
<id>maven-snapshots</id>
<url>https://repo.liming.pub/nexus/repository/maven-public-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- ... -->
<developerConnection>scm:git:http://code.liming.pub/test.git</developerConnection>
<tag>HEAD</tag>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<useReleaseProfile>false</useReleaseProfile>
<autoVersionSubmodules>true</autoVersionSubmodules>
<arguments>-DskipTests -Pmaven-public</arguments>
(3)
<scmCommentPrefix>「版本发布」</scmCommentPrefix>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
</project
cd /home/gitlab-runner/releases
mkdir -p ${CI_PROJECT_NAMESPACE}
cd ${CI_PROJECT_NAMESPACE}
if [[ ! -e ${CI_PROJECT_NAME} ]];then
echo "克隆${CI_PROJECT_NAME}工程"
git clone git@code.liming.pub:${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git
cd ${CI_PROJECT_NAME}
set +x
if [[ -e release.properties ]];then
echo "上次发布未成功,需要手工处理!"
exit 1
set -x
git checkout ${CI_COMMIT_REF_NAME}
git reset --hard origin/${CI_COMMIT_REF_NAME}
git pull
set +x
commit_message=$(git log --pretty=format:'%cn#%cd#%s' -1|cut -d# -f3|awk '{print $1}')
if [[ "${commit_message}" == "「版本发布」prepare" || "${commit_message}" == "「版本发布」rollback" ]];then
echo "当前分支不具备发布条件!"
exit 1
echo "开始发布版本"
mvn release:prepare --batch-mode
mvn release:perform --batch-mode
commit_message=$(git log --pretty=format:'%cn#%cd#%s' -1|cut -d# -f3|awk '{print $1}')
if [[ "${commit_message}" == "「版本发布」prepare" || "${commit_message}" == "「版本发布」rollback" ]];then
echo "版本发布自动提交,忽略..."
exit 0