aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom <thomas.verin@sonarsource.com>2016-05-27 15:34:03 +0200
committerTom <thomas.verin@sonarsource.com>2016-05-27 16:56:33 +0200
commitb77f2409e4707fec92bb85d8b1a503e0fb258a5d (patch)
treef4401fd64178369f8d15eb11842de8e28b246213
parent84392b2963db685e5ea4c473da12f98b1049a52a (diff)
downloadsonarqube-b77f2409e4707fec92bb85d8b1a503e0fb258a5d.tar.gz
sonarqube-b77f2409e4707fec92bb85d8b1a503e0fb258a5d.zip
handle release distribution from travis
-rwxr-xr-xdistribution.sh78
-rw-r--r--pom.xml99
-rwxr-xr-xtravis.sh16
3 files changed, 188 insertions, 5 deletions
diff --git a/distribution.sh b/distribution.sh
new file mode 100755
index 00000000000..9679c3d6899
--- /dev/null
+++ b/distribution.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+#
+
+set -euo pipefail
+
+#
+# Evaluate a Maven expression
+#
+
+function maven_expression() {
+ mvn help:evaluate -Dexpression=$1 | grep -v '^\[\|Download\w\+\:'
+}
+
+ARTIFACTID="`maven_expression project.artifactId`"
+VERSION="`maven_expression project.version`"
+BINTRAY_REPO=Distribution
+BINTRAY_ACCOUNT=sonarsource
+
+if [[ "$VERSION" =~ "-build" ]] || [[ "$VERSION" =~ "-SNAPSHOT" ]]; then
+ echo "This is a dev build, not releasing"
+ exit 0
+else
+ echo "About to release sonarqube"
+fi
+
+cd sonar-application
+
+GROUPID="`maven_expression project.groupId`"
+ARTIFACTID="`maven_expression project.artifactId`"
+echo "$GROUPID $ARTIFACTID $VERSION"
+GROUPIDPATH=`echo $GROUPID | sed 's/\./\//g'`
+
+echo "Uploading sonarqube-$VERSION.zip to $BINTRAY_ACCOUNT/$BINTRAY_REPO"
+cd target
+
+#zip file
+
+HTTP_CODE=`curl --write-out %{http_code} -T sonarqube-$VERSION.zip -u$BINTRAY_USER:$BINTRAY_TOKEN https://api.bintray.com/content/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/sonarqube/`
+
+echo $HTTP_CODE
+
+if [[ "$HTTP_CODE" =~ "201" ]]; then
+ echo "Uploaded to bintray"
+ echo "https://bintray.com/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/view#files"
+else
+ echo "Upload to bintray failed -> $HTTP_CODE"
+ exit -1
+fi
+
+#md5 file
+
+HTTP_CODE=`curl --write-out %{http_code} -T sonarqube-$VERSION.zip.md5 -u$BINTRAY_USER:$BINTRAY_TOKEN https://api.bintray.com/content/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/sonarqube/`
+
+echo $HTTP_CODE
+
+if [[ "$HTTP_CODE" =~ "201" ]]; then
+ echo "Uploaded to bintray"
+ echo "https://bintray.com/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/view#files"
+else
+ echo "Upload to bintray failed -> $HTTP_CODE"
+ exit -1
+fi
+
+#sha file
+
+HTTP_CODE=`curl --write-out %{http_code} -T sonarqube-$VERSION.zip.sha -u$BINTRAY_USER:$BINTRAY_TOKEN https://api.bintray.com/content/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/sonarqube/`
+
+echo $HTTP_CODE
+
+if [[ "$HTTP_CODE" =~ "201" ]]; then
+ echo "Uploaded to bintray"
+ echo "https://bintray.com/$BINTRAY_ACCOUNT/$BINTRAY_REPO/SonarQube/$VERSION/view#files"
+else
+ echo "Upload to bintray failed -> $HTTP_CODE"
+ exit -1
+fi
+
+ \ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a31e5951ec7..221fa371ee6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -87,6 +87,7 @@
<!-- used for deployment to SonarSource Artifactory -->
<gitRepositoryName>sonarqube</gitRepositoryName>
+ <artifactoryExclusion></artifactoryExclusion>
</properties>
<build>
@@ -1120,7 +1121,10 @@
</properties>
</profile>
<profile>
- <id>release</id>
+ <id>release</id>
+ <properties>
+ <artifactoryExclusion>**/sonar-application*</artifactoryExclusion>
+ </properties>
<build>
<plugins>
<plugin>
@@ -1512,6 +1516,99 @@
<module>tests</module>
</modules>
</profile>
+ <profile>
+ <id>deploy-sonarsource</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-enforcer-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>enforce-deploy-settings</id>
+ <goals>
+ <goal>enforce</goal>
+ </goals>
+ <configuration>
+ <rules>
+ <requireProperty>
+ <property>gitRepositoryName</property>
+ <message>You must set name of Git repository in your pom</message>
+ </requireProperty>
+ <requireEnvironmentVariable>
+ <variableName>ARTIFACTORY_URL</variableName>
+ </requireEnvironmentVariable>
+ <requireEnvironmentVariable>
+ <variableName>ARTIFACTORY_DEPLOY_REPO</variableName>
+ </requireEnvironmentVariable>
+ <requireEnvironmentVariable>
+ <variableName>ARTIFACTORY_DEPLOY_USERNAME</variableName>
+ </requireEnvironmentVariable>
+ <requireEnvironmentVariable>
+ <variableName>ARTIFACTORY_DEPLOY_PASSWORD</variableName>
+ </requireEnvironmentVariable>
+ </rules>
+ <fail>true</fail>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- this maven plugin is not deployed in Maven Central. It should be downloaded
+ from JFrog JCenter or from SonarSource repositories -->
+ <groupId>org.jfrog.buildinfo</groupId>
+ <artifactId>artifactory-maven-plugin</artifactId>
+ <version>${version.artifactory.plugin}</version>
+ <executions>
+ <execution>
+ <id>build-info</id>
+ <goals>
+ <goal>publish</goal>
+ </goals>
+ <configuration>
+ <artifactory>
+ <envVarsExcludePatterns>
+ *password*,*PASSWORD*,*secret*,*MAVEN_CMD_LINE_ARGS*,sun.java.command,*token*,*TOKEN*,*LOGIN*,*login*
+ </envVarsExcludePatterns>
+ <includeEnvVars>true</includeEnvVars>
+ <timeoutSec>60</timeoutSec>
+ </artifactory>
+ <deployProperties>
+ <vcs.revision>{{GIT_COMMIT|TRAVIS_COMMIT}}</vcs.revision>
+ <vcs.branch>{{GIT_BRANCH|TRAVIS_BRANCH}}</vcs.branch>
+ <build.name>${gitRepositoryName}</build.name>
+ <build.number>{{BUILD_ID|TRAVIS_BUILD_NUMBER}}</build.number>
+ </deployProperties>
+ <licenses>
+ <autoDiscover>true</autoDiscover>
+ <includePublishedArtifacts>false</includePublishedArtifacts>
+ <runChecks>true</runChecks>
+ <scopes>project,provided</scopes>
+ <violationRecipients>licences-control@sonarsource.com</violationRecipients>
+ </licenses>
+ <publisher>
+ <contextUrl>${env.ARTIFACTORY_URL}</contextUrl>
+ <repoKey>${env.ARTIFACTORY_DEPLOY_REPO}</repoKey>
+ <username>${env.ARTIFACTORY_DEPLOY_USERNAME}</username>
+ <password>${env.ARTIFACTORY_DEPLOY_PASSWORD}</password>
+ <publishBuildInfo>true</publishBuildInfo>
+ <publishArtifacts>true</publishArtifacts>
+ <excludePatterns>${artifactoryExclusion}</excludePatterns>
+ <filterExcludedArtifactsFromBuild>true</filterExcludedArtifactsFromBuild>
+ </publisher>
+ <buildInfo>
+ <buildName>${gitRepositoryName}</buildName>
+ <buildNumber>{{BUILD_ID|TRAVIS_BUILD_NUMBER}}</buildNumber>
+ <buildUrl>{{CI_BUILD_URL|BUILD_URL}}</buildUrl>
+ <vcsRevision>{{GIT_COMMIT|TRAVIS_COMMIT}}</vcsRevision>
+ </buildInfo>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
</profiles>
</project>
diff --git a/travis.sh b/travis.sh
index 9859d8a5f3c..50e6da7b3cf 100755
--- a/travis.sh
+++ b/travis.sh
@@ -38,14 +38,22 @@ CI)
echo "======= Found SNAPSHOT version ======="
# Do not deploy a SNAPSHOT version but the release version related to this build
set_maven_build_version $TRAVIS_BUILD_NUMBER
+ # analysis is currently executed by SonarSource internal infrastructure
+ mvn deploy \
+ -Pdeploy-sonarsource \
+ -B -e -V
else
echo "======= Found RELEASE version ======="
+ # analysis is currently executed by SonarSource internal infrastructure
+ mvn deploy \
+ -Dmaven.test.skip=true \
+ -Pdeploy-sonarsource,release \
+ -B -e -V
+ ./distribution.sh
+
fi
- # analysis is currently executed by SonarSource internal infrastructure
- mvn deploy \
- -Pdeploy-sonarsource,release \
- -B -e -V
+
elif [ "$TRAVIS_PULL_REQUEST" != "false" ] && [ -n "${GITHUB_TOKEN:-}" ]; then
strongEcho 'Build and analyze pull request, no deploy'