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

Commit 326db7e

Browse files
authored
Merge pull request #60 from andresmgot/release
Enable automatic releases
2 parents 904364e + b06a4e5 commit 326db7e

File tree

3 files changed

+85
-3
lines changed

3 files changed

+85
-3
lines changed

.travis.yml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,25 @@ services:
1111
- docker
1212
env:
1313
global:
14-
- KUBELESS_VERSION=0.1.0
14+
- KUBELESS_VERSION: 0.1.0
15+
- REPO_DOMAIN: serverless
16+
- REPO_NAME: serverless-kubeless
17+
- secure: "s+L8ndj0uMNwqbLvbHePHeMJw2LI8DdEdcq1vJ98hNwHOWQc2mHVB4utG9EZFkaL+RAZYduldSJqr443d2BugxrkmzhLUlM5vDks+zHeKecwTah2uuaMUXVT/y/cWDDTVp3phqSqWbHBMG6u0ImvTVWHpnkux55S3QJTHevvhdodpO6VDTsJCEB3e1d2hHxi0L9tJrFXzQRpooV8IUuODwKBJyhK4CD7rvu0D1gBgHaUNnNLrCy4YTaFl19q5NdZUtrQDC7rpSPOhFI9CBFX8GiFq6nY3XzFASwq/JtKc3K7OLIC7Wqb6JpuvFhG6S1yhBzp73pnoE9U0Bi+YMa3L+nPoh58dCB2ldNCCCMbx7R6PWq/TwYzLvgZZ7queC2kbvCTrtU6JJfmb0CxmX1fnUIpCsNeyXaPuo4Ly6WJeAID32z79CwMo9NH0uOVTLy3LTrLcEfELhBRL5+WkMvKmXUt8yN/jEIa/H38pQN5Y/AnJ0KznO8RZ2nLhi1cR+xUkxfPVZ22Wr2XkbzJDZih/mZR+5GQBfUHWgpUChK+e8dOhplk+4PZJEO6Myja7ykXBPYtL9CV/Xi+1nQqLmfhyChiES201KusJr1IrFklslzCzgrSH8Dv2yaYUTe/Ub/I3gWIhKOXY66gkpmB6MSBJUfMK3uR4/wYfCvbtBTugsY="
1518
install:
1619
- npm install -g serverless
17-
- npm install
20+
- npm install
21+
after_success:
22+
- |
23+
if [[ "$TRAVIS_BRANCH" == master && \
24+
"$TRAVIS_PULL_REQUEST" == false && \
25+
-n "$ACCESS_TOKEN" ]]; then
26+
./scripts/release.sh
27+
fi
28+
deploy:
29+
provider: npm
30+
email: kubernetes@bitnami.com
31+
api_key:
32+
secure: "jn9tA4DES1n4uxhD+rb7pbzux523AULAgv1f5umqAzvw9bCz7mD6nLS7fo1W8RZSPND7aPM+X5hPknyHm1L+tZbOInKNtCwFkKW2IELJ6a2OCQ+zXN/S/Cxu4dsfeDjE0kiAu5a3YejE5xEjkb98j4eC8i2N4gmdPvDLNqyMXH+W8jF/T2ivkxUGxYOMzyffmsfKmHQ2H31VZEDckcQIENUfLJuxeiBPyrppBKEOgQjpAXiAALnBUrLt741xxL7iQRDHUj8v1cmiymrERhcVpWmYvU4BonlcvPnuWK2dLglQAO+t1UoY5nXS23Lc24yXA8XMp/Bv/dHEB4WwQBNZ4vq+ImGqjFI7/HJlYpHa8eVe6rZJxNnmvBAa3HbTwTz0hoaGwAmHMqPtwelYwL92hEUV/lXQoial9WXSwIqrt24J4Q8UH7jZK3uY3LnCZggDTShSyTvzVp5Xjw/vN0xo5CDlXJ8FZpFkVUWOp7ISYEynzOlW8OZynRiboXyAgLfFMDglhDkcLCpkQLKfKSa0vZWmhgHgNsxs44cFb7pElciQ2uYQjFldXjU/4qVN65s58t4Sn69nFpSthSQKa5iwYMXbI792onVBO334pBdUFBagzP3e4Th4y2k1pFZTZ5UV5gs/2/ROK1KsM5XCi7px4Ddw1kMY4Q6PHZBaTLblqU4="
33+
on:
34+
tags: true
35+
repo: serverless/serverless-kubeless

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "serverless-kubeless",
3-
"version": "0.1.11",
3+
"version": "0.1.12",
44
"description": "This plugin enables support for Kubeless within the [Serverless Framework](https://github.com/serverless).",
55
"main": "index.js",
66
"directories": {

scripts/release.sh

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/bin/bash
2+
set -e
3+
4+
function get_version {
5+
echo $(jq -r .version ./package.json)
6+
}
7+
8+
function check_tag {
9+
local tag=$1
10+
published_tags=`curl -s https://api.github.com/repos/$REPO_DOMAIN/$REPO_NAME/tags`
11+
already_published=`echo $published_tags | jq ".[] | select(.name == \"$tag\")"`
12+
echo $already_published
13+
}
14+
15+
function release_tag {
16+
local tag=$1
17+
git fetch --tags
18+
local last_tag=`curl -s https://api.github.com/repos/$REPO_DOMAIN/$REPO_NAME/tags | jq --raw-output '.[0].name'`
19+
local release_notes=`git log $last_tag..HEAD --oneline`
20+
local parsed_release_notes=$(echo "$release_notes" | sed -n -e 'H;${x;s/\n/\\n - /g;s/^\\n//;p;}')
21+
parsed_release_notes=`echo "$parsed_release_notes" | sed -e '${s/ \( - [^ ]* Merge pull request\)/\1/g;}'`
22+
release=`curl -H "Authorization: token $ACCESS_TOKEN" -s --data "{
23+
\"tag_name\": \"$tag\",
24+
\"target_commitish\": \"master\",
25+
\"name\": \"$REPO_NAME-$tag\",
26+
\"body\": \"Release $tag includes the following commits: \n$parsed_release_notes\",
27+
\"draft\": false,
28+
\"prerelease\": false
29+
}" https://api.github.com/repos/$REPO_DOMAIN/$REPO_NAME/releases`
30+
echo $release | jq ".id"
31+
}
32+
33+
version=`get_version`
34+
35+
if [[ -z "$REPO_NAME" || -z "$REPO_DOMAIN" ]]; then
36+
echo "Github repository not specified" > /dev/stderr
37+
exit 1
38+
fi
39+
40+
if [[ -n "$ACCESS_TOKEN" ]]; then
41+
echo "Unable to release: Github Token not specified" > /dev/stderr
42+
exit 1
43+
fi
44+
45+
repo_check=`curl -s https://api.github.com/repos/$REPO_DOMAIN/$REPO_NAME`
46+
if [[ $repo_check == *"Not Found"* ]]; then
47+
echo "Not found a Github repository for $REPO_DOMAIN/$REPO_NAME, it is not possible to publish it" > /dev/stderr
48+
exit 1
49+
else
50+
tag=v$version
51+
already_published=`check_tag $tag`
52+
if [[ -z $already_published ]]; then
53+
echo "Releasing $tag in Github"
54+
release_id=`release_tag $tag`
55+
if [ "$release_id" == "null" ]; then
56+
echo "There was an error trying to release $tag" > /dev/stderr
57+
exit 1
58+
else
59+
echo "Released $tag with ID $release_id"
60+
fi
61+
else
62+
echo "Skipping Github release since $tag was already released"
63+
fi
64+
fi

0 commit comments

Comments
 (0)