Skip to content

Commit

Permalink
build: release using travis
Browse files Browse the repository at this point in the history
  • Loading branch information
antonydenyer committed Oct 1, 2019
1 parent 1471e4d commit 0f0f9e6
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 74 deletions.
52 changes: 0 additions & 52 deletions .gitlab-ci.yml

This file was deleted.

11 changes: 6 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@ install: skip
test: skip
jobs:
include:
- stage: build master
script: "./gradlew spotlessCheck check jacocoTestReport"
- stage: release snapshot
script: "./gradlew release --info -PossrhRepoUrl=${SNAPSHOT_OSSRH_REPO_URL} -x
test"
- stage: build snapshot
if: branch = master
script: "./gradlew spotlessCheck check jacocoTestReport release -PossrhRepoUrl=${SNAPSHOT_OSSRH_REPO_URL}"
- stage: build release
if: branch =~ /release/
script: "./gradlew check release -Pversion=${TRAVIS_BRANCH#'release/'} -PossrhRepoUrl=${RELEASE_OSSRH_REPO_URL}"
after_success:
- bash <(curl -s https://codecov.io/bash)
env:
Expand All @@ -30,3 +30,4 @@ env:
- secure: fwTcWDVRjXyiKqStHxXPzlu7dpyeHus1IrJK3ODVgki3Qcx443lpq0YhghvecakiSGIYHwFJVG3XiHakVhVQpnOsISNqsspYkn2U92O3gT3brexkfx9oAk/w+nWBMhlK97F5keDYbC0EmL98QJgcexlCNK8h7TjeEVnNdJlAmBzYaH7ROd9PnTzheBddFQUmVlC6zUSrNaRnIgWAyP1uBZqFPW4Om9WK1ZqcwGtzxegyJSvJS3mNEfgic/mmT85XmGSQ2NeJcUp2JDRd6T/n/1CLKSRqfl7ePEhmK3mKaMIWjdzTxrMul4fTp7RdZBIY0fdIi1Q6fYoI45SgYlYNsPiuVrmYInSgrY8kSyUibGe74Yw1Ma4L/HR0zay51y/qznJ6j8uGlhKQWnxwcSWOrvXmoX1FDSkyKNFh68UeNkarS64nl7mee424wLtBzoPx1zeCqPlYNauwYbpJ7wj1q7MjmG/PSwF3MQtWzAok2Zuwc6jn/OeQhc3PvzuIUkbQt+FSTMyZvxHPV/BkHWW4lzGAxFxqwuXaZqCHx6GmgNndvJRZa+8Lnjgxltb03M3gmIQy6GI0KvFw5p++EWUEulrczlOaC0Skh0TFTPre2NmkNBTzN94oPkGulYeFLKAp3ssh4CtTkLeIofzXGxNIs3V4mHX3uLJoAECB9m8cjX4=
- secure: Un07tNCyF/HLrynfDQEto09brbkTAnG8icLulHwX0l32xUlC7LjfqGPq5FNOhn/mqBisJ+ByWnVuXQQanb/KJrW5kobrmX5MDqLPyJ1FfDw1sprB2W3un9T16SZYmZqe2nG5orv3UTZ1fpbqzwgIaKWv/GU1wtiHujmeyVwXqr7mBmxWq9M09LJUgCQ5ppZvZ75mlSXOawdC4qtWk6KOdVnlMb+mvhzEiAY1M071fLnkLotVQ11gzhDWz5iVGPUrh39yRhnTkuCwsEIGVvoIdCttsLNAEe4Ttku9+PNXTWMEuTZLgURQ2grZ6Qr9lcAfBd5uPtELRgZGsHiW+oDmhWMnhq44Rnv09/JXKMCUTdWC1NKg7STBAMvPArHJpM8+NTCe2W60+nqi37Vj7+ZNSTkHo9/1luAUXRUEw9oL87HaR8ZrcRBbhbOxJ3ngAYOZdvT8MFfsSARHB+VgzPDDVj12L1eDxIjNuCiYBWLfKHXTrKXXcXvG5kWnDI1Tvc4KJ7PbJ8RWDUe1WeGYLlu0p3MLAN/pyUpnUe+VEmHz8nrkf/jrMkXQDniGp35dctYclHzLYtLdhWrbEL8z6txsaGgvbFgVwD6zfQ1QqgvQJrK9i7eHJGLvIh2KEHsgVItUgaS8zfZhnaQgegxFPAps6eVVRVpU/2nG8ielqGVsKE8=
- secure: t2jM1zHFsvgvI9CDprViHgjGld9Mk9gyK/9oSjo4tj6pYl4VNQpSyHZZzDLId7O3fv+utrIUQ04yd2Ti5aPEd9s+68wcLtP77Os5+ycERdAYEvQtwvCYuV+QSUev/2g49mOU67s0J8pLH0RZiUL3lw+B+I++klD3rebxSzU2g6R+VtVC0jfOr5hdXDegzt6ps9vFft0G/jHp1SuoFNJzs0Wg3RSkP0pVVUAN/mRnMe/hubgOhfxy1RFQLc8sO5AqO3ViBDhipN56ngbh6aePPcO0uYiHcYAiK2bx3fVmrS8A6v0PH6DpMrNPOuryt0NYlfchEoy99NVLnsVvAehmxX4lCxPbl5WSbhe53H1NdkO3rYRx8R/Vrfvl+NN/X9mwAyVhLe12wdAZ3u2qd8csHn2hlTCNc68ivz8hNS02SEsbok+NoX4u/h9jofwAR86L99NDbEymoD872CJXL3UTgLp+DJufSqZHXTXsFk6XgygQiByXnLE93QH+qq3yvCYHLtEt5HtcIoHcbR5Xpu8ntFpCHdnUTFyD5yloRDVuSONWfNy8MZtWDXlSVeMg4qVGhPLXZM06YAxJGG17u64F686JoMCdgy1K2KMNLkIvrK+UF6O2jbLbLZjN5cqr1KgZAj0ZpRyFVQoq0eK4+dySr7t4QiSXBI5totbImqspdH4=
- secure: bSpcYh+0fwzCDzlEZAsStlQXAh0ZS0is+dSzh8X3XJMBFm5cezXFTiANiWKdkH+1aL08nRn6Qfn7vxhs5sVWbTaeMbbr+1HoWxdvthN7tIQuBrxCEuA8+OI7HJR4eiEjpXWt1xYI0YVK+UHTnVMiz9qE1r87nodxYV7g+1vDf2pYjVXBynGY77tX8eNaLRKUJ8or/nOcUJgF3eF5VHHaWXFCElonyHfaCFRYRtn3KXw2kZ7ACJwsofvR1MfUgkeO7Ec5NoSsxqIunwTb8BqGSTQUeo5bn/XC8z2QcwBFovodqAaH42/uFjVJGE3POQZIjJGAHysnmuTpDb3K/0MfISwLBgtR999BB6bCrCqoZYPIZ+b3WdY9fjooFlWbxzkDqkUatwsiJV1GfMOMyrunEMRDaf8h3Z3u851H4pZjaMkVugQjL8SxjDfNrdNv+X5x5Cn8/Pr1aCVzNrc/8VJOEMO0LP5meDfA5emINY+hMRwHcRO1U0LrJHXr/l+CMMQG5tbPBM0QYmgd0j6vz3TWp7VwvGmMTjnXmnaaIJFYQGGS4UxcbezEVzSdySMcYApSlqCfrUdZe0lC5mjj0JE1GsHlW4DPcxA0Hyk7gWY9RIFP+DkeOmqB61IWtISGNMS5DnExivXCaYlU87Sxcnd9qg1v6uUZ0SMLabCu2NbOF/4=
18 changes: 1 addition & 17 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jacocoTestReport {


ext {
web3jVersion = '4.+'
web3jVersion = project.property('version') != 'unspecified' ? project.property('version') : "4.+"
jacksonKotlinVersion = '2.9.0'

logbackVersion = '1.2.3'
Expand Down Expand Up @@ -269,22 +269,6 @@ task release {
}
}

githubRelease {
token System.getenv('GITHUB_PERSONAL_ACCESS_TOKEN') ? System.getenv('GITHUB_PERSONAL_ACCESS_TOKEN') : ""
owner 'web3j'
repo 'quorum'
tagName "v${version}"
body changelog {
options([
'--format=oneline',
'--abbrev-commit',
'--max-count=50'
])
}
releaseAssets file("$buildDir/libs").listFiles()
overwrite true
}

testSets { integrationTest { dirName = 'integration-test' } }
integrationTest.mustRunAfter test
compileIntegrationTestKotlin { kotlinOptions.jvmTarget = '1.8' }
24 changes: 24 additions & 0 deletions scripts/common.bash
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
set -eo pipefail

[[ "$TRACE" ]] && set -x

configure_github_user() {
git config --global user.email "git@antonydenyer.co.uk"
git config --global user.name "Antony Denyer"
}

github_clone() {
git clone https://antonydenyer:${GITHUB_PERSONAL_ACCESS_TOKEN}@github.com/web3j/$1.git
cd $1
}

ensure_version() {
if [[ -z "$VERSION" ]]; then
VERSION="${TRAVIS_BRANCH//release\/}"
fi

if [[ "$VERSION" = "" ]]; then
echo "ERROR: Missing VERSION specify it using an env variable"
exit 1
fi
}
48 changes: 48 additions & 0 deletions scripts/github-release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

set -eo pipefail

SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done

trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG
# echo an error message before exiting
trap 'echo "\"${last_command}\" command filed with exit code $?."' EXIT

export SCRIPTS_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"

source "$SCRIPTS_DIR/common.bash"

ensure_version

export PRODUCT=quorum

export PREVIOUS_RELEASE=$(curl -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" -s https://api.github.com/repos/web3j/${PRODUCT}/releases/latest | jq -r '.target_commitish' )
export CHANGELOG=$(git rev-list --format=oneline --abbrev-commit --max-count=50 ${PREVIOUS_RELEASE}..HEAD | jq --slurp --raw-input . )

echo "Creating a new release on GitHub with changes"
echo -e "\n${CHANGELOG:1:-1}"

API_JSON="{
\"tag_name\": \"v${VERSION}\",
\"target_commitish\": \"$(git rev-parse HEAD)\",
\"name\": \"v${VERSION}\",
\"body\": \"Release of version ${VERSION}: \n\n ${CHANGELOG:1:-1}\",
\"draft\": false,
\"prerelease\": false
}"


export RESULT=$(curl -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" --data "$API_JSON" -s https://api.github.com/repos/web3j/${PRODUCT}/releases)
export UPLOAD_URL=$(echo ${RESULT} | jq -r ".upload_url")

for FILE in `find ./build/libs -type f -name "${PRODUCT}-${VERSION}.*"`;
do
curl -H "Authorization: token ${GITHUB_PERSONAL_ACCESS_TOKEN}" -s "${UPLOAD_URL:0:-13}?name=$(basename -- $FILE)" -H "Content-Type: $(file -b --mime-type $FILE)" --data-binary @"${FILE}"
done

echo "Release finished"

0 comments on commit 0f0f9e6

Please sign in to comment.