Skip to content
This repository has been archived by the owner on Aug 9, 2024. It is now read-only.

Commit

Permalink
Refactor CI/CD using release-manager (close #98)
Browse files Browse the repository at this point in the history
  • Loading branch information
rzats committed Jul 26, 2017
1 parent 94d5f99 commit 261b13b
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 22 deletions.
15 changes: 12 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
language: scala

scala:
- 2.11.8
- 2.11.8

jdk:
- oraclejdk8
- oraclejdk8

script:
- sbt test
- sbt test

before_deploy:
- pip install --user release-manager==0.2.0

deploy:
skip_cleanup: true
provider: script
script: ./.travis/deploy.sh $TRAVIS_TAG
on:
tags: true
condition: '"$(.travis/is_release_tag.sh $TRAVIS_TAG)" == "" && $? == 0'

env:
global:
- secure: jJzX+eFS8pOdBdL/VpIAyN7MyVZWRdwTVpnyjDPleBVcreMkaZACijQZXFba9P4lz0S5Qd57YF7WnYnsVZ51e2Mju8Y/NR4jrByDlvowiufUI9RQcSnR2V/Qooukhlk1o4Fid2y+20cDx14/LrXOt8R7x9fr96yWMFbK80XqH/MbFybq5nGVR9GlaCcsEjeuDglfg+muKi0SqVUSoW15ppcFIokyaE4u71VW/uW2gAu1NwWsIBFoChOSjsO5EYz5vXtwGndhfOiqCGKBH5sTOthX7DyMyZox9bxi7ep2RaDlkjeaZxxMni6L53Zlgvl7A4cv5XYx0lRXXNTTDIGiTt3G5YGick/uOQ5y3q42Ci7uCV+CofLivwAc8mnmfSol6a4gxhJHmKB/Ye/lhvw+AZ+O1ItogATZ/qWfO9BmOjGLz8ZezXJpbHwg69ytjX8FsifZe9yqT6uKwAJak31BcvsZSw4rAGKZyIBakV8UQAC3vY47GxivvsPfZmdrwdYmFWPumSEzFBiAbQPqzVPka412T4f/1sOPl4Hs6OdvwgIMqpKBf0QlwY18o8nh39410pgD4CeqPo2l9o3UQOknv8ShDtVY2n7h81aKFy+km+YbsACAxlz9dG1HlHtef+7VF3GhPrQiCQKUVYU/ZIZ3q1IBdbrVFJlmLx4w6go12+Q=
Expand Down
26 changes: 9 additions & 17 deletions .travis/deploy.sh
Original file line number Diff line number Diff line change
@@ -1,23 +1,15 @@
#!/bin/bash

tag_version=$1
tag=$1

mkdir ~/.bintray/
FILE=$HOME/.bintray/.credentials
cat <<EOF >$FILE
realm = Bintray API Realm
host = api.bintray.com
user = $BINTRAY_SNOWPLOW_GENERIC_USER
password = $BINTRAY_SNOWPLOW_GENERIC_API_KEY
EOF
release=${tag:0}

if [ "${release}" == "" ]; then
echo "Warning! No release specified! Ignoring."
exit 2
fi

cd $TRAVIS_BUILD_DIR
pwd

project_version=$(sbt version -Dsbt.log.noformat=true | perl -ne 'print $1 if /(\d+\.\d+[^\r\n]*)/')
if [ "${project_version}" == "${tag_version}" ]; then
sbt universal:publish
else
echo "Tag version '${tag_version}' doesn't match version in scala project ('${project_version}'). Aborting!"
exit 1
fi
export TRAVIS_BUILD_RELEASE_TAG=${release}
release-manager --config ./.travis/release_sauna.yml --check-version --make-version --make-artifact --upload-artifact
10 changes: 10 additions & 0 deletions .travis/is_release_tag.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash

tag=$1
release=${tag:0}

if [ "${release}" == "" ]; then
echo "Warning! No release specified! Ignoring."
exit 2
fi
exit 0
30 changes: 30 additions & 0 deletions .travis/release_sauna.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Required: local settings
local:
root_dir : <%= ENV['TRAVIS_BUILD_DIR'] %>

# Required: deployment targets
targets:
- type : "bintray"
user : <%= ENV['BINTRAY_SNOWPLOW_GENERIC_USER'] %>
password : <%= ENV['BINTRAY_SNOWPLOW_GENERIC_API_KEY'] %>

# Required: packages to be deployed
packages:
- repo : "snowplow-generic"
name : "sauna"
user_org : "snowplow"
publish : true
override : false
continue_on_conflict : false
version : <%= FUNC['sbt_version(.)'] %>
build_version : <%= ENV['TRAVIS_BUILD_RELEASE_TAG'] %>
build_commands:
- sbt assembly
artifacts:
- prefix : "sauna-"
suffix : ""
type : "zip"

# The binaries to put in the zip
binary_paths:
- "target/scala-2.11/sauna-{{ packages.0.build_version }}.jar"
4 changes: 2 additions & 2 deletions project/BuildSettings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ object BuildSettings {
assemblyOption in assembly ~= { _.copy(prependShellScript = Some(defaultShellScript)) },

// Name it as an executable
assemblyJarName in assembly := { s"${name.value}" },
assemblyJarName in assembly := { s"${name.value}-${version.value}.jar" },

// Make this executable
mainClass in assembly := Some("com.snowplowanalytics.sauna.Sauna"),

test in assembly := {}, // Speed up packaging
// test in assembly := {}, // Uncomment to disable tests (speeds up packaging)

assemblyMergeStrategy in assembly := {
case PathList("org", "apache", "commons", "logging", xs @ _*) =>
Expand Down

0 comments on commit 261b13b

Please sign in to comment.