2017-05-15 21:11:43 +02:00
|
|
|
#!/bin/bash
|
2017-05-20 10:16:29 +02:00
|
|
|
set -e
|
2017-05-15 21:11:43 +02:00
|
|
|
|
2018-05-24 19:20:12 +02:00
|
|
|
source .travis/logger.sh
|
2018-06-20 20:57:27 +02:00
|
|
|
source .travis/common-functions.sh
|
2019-11-09 20:20:33 +01:00
|
|
|
source .travis/github-releases-api.sh
|
2019-11-10 17:59:42 +01:00
|
|
|
source .travis/sourceforge-api.sh
|
2019-11-10 18:21:16 +01:00
|
|
|
source .travis/regression-tester.sh
|
2017-08-12 21:55:31 +02:00
|
|
|
|
2020-07-16 18:14:46 +02:00
|
|
|
VERSION=$(get_pom_version)
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "Building PMD ${VERSION} on branch ${TRAVIS_BRANCH}"
|
2017-05-15 21:11:43 +02:00
|
|
|
|
2018-02-18 21:47:50 +01:00
|
|
|
MVN_BUILD_FLAGS="-B -V"
|
2017-10-30 16:54:38 -03:00
|
|
|
|
2018-07-29 19:55:44 +02:00
|
|
|
if travis_isOSX; then
|
|
|
|
|
|
|
|
log_info "The build is running on OSX"
|
|
|
|
./mvnw verify $MVN_BUILD_FLAGS
|
2019-10-18 16:40:44 +02:00
|
|
|
|
|
|
|
elif travis_isWindows; then
|
|
|
|
|
|
|
|
log_info "The build is running on Windows"
|
|
|
|
./mvnw verify $MVN_BUILD_FLAGS
|
2018-07-29 19:55:44 +02:00
|
|
|
|
|
|
|
elif travis_isPullRequest; then
|
2017-05-15 21:11:43 +02:00
|
|
|
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "This is a pull-request build"
|
2017-10-30 16:54:38 -03:00
|
|
|
./mvnw verify $MVN_BUILD_FLAGS
|
2019-11-10 18:21:16 +01:00
|
|
|
|
|
|
|
regression-tester_executeDanger
|
2017-05-15 21:11:43 +02:00
|
|
|
|
2017-05-20 10:43:14 +02:00
|
|
|
elif travis_isPush; then
|
2017-05-15 21:11:43 +02:00
|
|
|
|
2017-10-13 10:37:16 +02:00
|
|
|
if [[ "${VERSION}" != *-SNAPSHOT && "${TRAVIS_TAG}" != "" ]]; then
|
2018-05-22 20:29:13 +02:00
|
|
|
echo -e "\n\n"
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "This is a release build for tag ${TRAVIS_TAG}"
|
2018-05-22 20:29:13 +02:00
|
|
|
echo -e "\n\n"
|
2019-11-09 20:20:33 +01:00
|
|
|
|
|
|
|
# create a draft github release
|
2020-01-24 18:49:35 +01:00
|
|
|
gh_releases_createDraftRelease "${TRAVIS_TAG}" "$(git rev-list -n 1 ${TRAVIS_TAG})"
|
2019-11-09 20:20:33 +01:00
|
|
|
GH_RELEASE="$RESULT"
|
|
|
|
|
2019-11-10 17:59:42 +01:00
|
|
|
# Build and deploy to ossrh / maven-central
|
2019-03-30 18:49:51 +01:00
|
|
|
./mvnw deploy -Possrh,sign,pmd-release $MVN_BUILD_FLAGS
|
2019-11-02 16:38:10 +01:00
|
|
|
echo -e "\n\n"
|
|
|
|
|
|
|
|
# Deploy to github releases
|
2019-11-09 20:20:33 +01:00
|
|
|
gh_release_uploadAsset "$GH_RELEASE" "pmd-dist/target/pmd-bin-${VERSION}.zip"
|
|
|
|
gh_release_uploadAsset "$GH_RELEASE" "pmd-dist/target/pmd-src-${VERSION}.zip"
|
2019-11-02 16:38:10 +01:00
|
|
|
|
|
|
|
# Deploy to sourceforge files
|
2019-11-10 17:59:42 +01:00
|
|
|
sourceforge_uploadFile "${VERSION}" "pmd-dist/target/pmd-bin-${VERSION}.zip"
|
|
|
|
sourceforge_uploadFile "${VERSION}" "pmd-dist/target/pmd-src-${VERSION}.zip"
|
2019-11-02 16:38:10 +01:00
|
|
|
|
2019-11-10 18:21:16 +01:00
|
|
|
regression-tester_uploadBaseline
|
|
|
|
|
2017-10-13 10:37:16 +02:00
|
|
|
elif [[ "${VERSION}" == *-SNAPSHOT ]]; then
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "This is a snapshot build"
|
2019-03-30 18:49:51 +01:00
|
|
|
./mvnw deploy -Possrh,sign $MVN_BUILD_FLAGS
|
2019-11-10 17:59:42 +01:00
|
|
|
|
|
|
|
# Deploy to sourceforge files
|
|
|
|
sourceforge_uploadFile "${VERSION}" "pmd-dist/target/pmd-bin-${VERSION}.zip"
|
|
|
|
sourceforge_uploadFile "${VERSION}" "pmd-dist/target/pmd-src-${VERSION}.zip"
|
|
|
|
|
2020-04-25 09:33:37 +02:00
|
|
|
if [ "${TRAVIS_BRANCH}" != "java-grammar" ]; then
|
|
|
|
regression-tester_uploadBaseline
|
|
|
|
else
|
|
|
|
log_info "Skipping regression tester for branch ${TRAVIS_BRANCH}"
|
|
|
|
fi
|
2019-11-10 18:21:16 +01:00
|
|
|
|
2017-05-15 21:11:43 +02:00
|
|
|
else
|
|
|
|
# other build. Can happen during release: the commit with a non snapshot version is built, but not from the tag.
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "This is some other build, probably during release: commit with a non-snapshot version on branch master..."
|
2018-05-22 20:29:13 +02:00
|
|
|
./mvnw verify $MVN_BUILD_FLAGS
|
2017-05-15 21:11:43 +02:00
|
|
|
# we stop here - no need to execute further steps
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
else
|
2018-05-24 19:18:57 +02:00
|
|
|
log_info "This is neither a pull request nor a push. Not executing any build."
|
2017-05-15 21:11:43 +02:00
|
|
|
exit 1
|
|
|
|
fi
|