Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,22 @@ env:

# Install tox
install:
- pip install tox-travis
- pip install tox-travis git-semver

# Execute tests
script:
- tox

# Update Changelog and create a release (only from master branch)
deploy:
provider: script
skip_cleanup: true
script: .travis/releaser.sh
on:
branch: master
branches:
only:
- master

notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/
71 changes: 71 additions & 0 deletions .travis/releaser.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/bin/bash
#
# Copyright (C) 2018 Pawel Krupa (@paulfantom) - All Rights Reserved
# Permission to copy and modify is granted under the MIT license
#
# Script to automatically do a couple of things:
# - generate a new tag according to semver (https://semver.org/)
# - generate CHANGELOG.md by using https://github.com/skywinder/github-changelog-generator
# - sync CHANGELOG with GitHub releases by using https://github.com/mattbrictson/chandler
#
# Tags are generated by searching for a keyword in last commit message. Keywords are:
# - [patch] or [fix] to bump patch number
# - [minor], [feature] or [feat] to bump minor number
# - [major] or [breaking change] to bump major number
# All keywords MUST be surrounded with square braces.
#
# Script uses git mechanisms for locking, so it can be used in parallel builds
#
# Requirements:
# - GH_TOKEN variable set with GitHub token. Access level: repo.public_repo
# - docker
# - git-semver python package (pip install git-semver)

# Exit when latest commit is tagged
[[ $(git tag --points-at) ]] && exit 0

# Some basic variables
GIT_MAIL="[email protected]"
GIT_USER="atosatto"
ORGANIZATION=$(echo "$TRAVIS_REPO_SLUG" | awk -F '/' '{print $1}')
PROJECT=$(echo "$TRAVIS_REPO_SLUG" | awk -F '/' '{print $2}')
GALAXY_URL="https://galaxy.ansible.com/${ORGANIZATION}/${PROJECT#ansible-}"

# Git config
git config --global user.email "${GIT_MAIL}"
git config --global user.name "${GIT_USER}"
GIT_URL=$(git config --get remote.origin.url)
GIT_URL=${GIT_URL#*//}

# Generate TAG
GIT_TAG=none
echo "Last commit message: $TRAVIS_COMMIT_MESSAGE"
case "${TRAVIS_COMMIT_MESSAGE}" in
*"[patch]"*|*"[fix]"* ) GIT_TAG=$(git semver --next-patch) ;;
*"[minor]"*|*"[feat]"*|*"[feature]"* ) GIT_TAG=$(git semver --next-minor) ;;
*"[major]"*|*"[breaking change]"* ) GIT_TAG=$(git semver --next-major) ;;
*) echo "Keyword not detected. Doing nothing" ;;
esac
if [ "$GIT_TAG" != "none" ]; then
echo "Assigning new tag: $GIT_TAG"
git tag "$GIT_TAG" -a -m "Automatic tag generation for travis build no. $TRAVIS_BUILD_NUMBER"
git push "https://${GH_TOKEN}:@${GIT_URL}" --tags || exit 0
fi

# Generate CHANGELOG.md
git checkout master
git pull
docker run -it --rm -v "$(pwd)":/usr/local/src/your-app ferrarimarco/github-changelog-generator \
-u "${ORGANIZATION}" -p "${PROJECT}" --token "${GH_TOKEN}" \
--release-url "${GALAXY_URL}" \
--unreleased-label "**Next release**" --no-compare-link

git add CHANGELOG.md
git commit -m '[ci skip] Automatic changelog update'

git push "https://${GH_TOKEN}:@${GIT_URL}" || exit 0

# Sync changelog to github releases
if [ "$GIT_TAG" != "none" ]; then
docker run -e CHANDLER_GITHUB_API_TOKEN="${GH_TOKEN}" -v "$(pwd)":/chandler -ti whizark/chandler push "${GIT_TAG}"
fi
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Change Log

## [**Next release**](https://galaxy.ansible.com/atosatto/minio)

**Merged pull requests:**

- major code cleanup [\#8](https://github.com/atosatto/ansible-minio/pull/8) ([paulfantom](https://github.com/paulfantom))
- Run travis tests against 3 different ansible versions [\#7](https://github.com/atosatto/ansible-minio/pull/7) ([paulfantom](https://github.com/paulfantom))
- Add a simple MAINTAINERS file [\#6](https://github.com/atosatto/ansible-minio/pull/6) ([atosatto](https://github.com/atosatto))
- Rename client/server install flags. [\#5](https://github.com/atosatto/ansible-minio/pull/5) ([SuperQ](https://github.com/SuperQ))
- Create data directories [\#4](https://github.com/atosatto/ansible-minio/pull/4) ([SuperQ](https://github.com/SuperQ))

## [v1.0.1](https://galaxy.ansible.com/atosatto/minio) (2017-01-03)
## [v1.0.0](https://galaxy.ansible.com/atosatto/minio) (2017-01-02)


\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*