Project

General

Profile

Deployment

Back to main page

Introduction

  • Automated deployment is enabled by custom build system based on BuildBot (documentation).
  • Build system is hosted at dedicated virtual server called alchemist.
  • The web interface for build monitoring is accessible at https://alchemist.cesnet.cz/buildbot/. Security is provided by selective shibboleth authentication. Note, that when Shibboleth session expires the whole application is defunct and you have to refresh the page.
  • There is a simple web application running at https://alchemist.cesnet.cz/, which provides access to project artifacts (auto-generated documentation, packages, etc.).

Package deployment

Setup

You have to setup following remote repository to work with automated build system:

git remote add buildbot mentat@alchemist.cesnet.cz:/var/projects/mentat/repo.git

Deploying development packages

Automated build system is monitoring the devel branch on alchemist.cesnet.cz server to build development packages. Anything pushed into that branch will trigger the build. The build is as simple as executing following command:

# For the first time:
git push buildbot devel

# When remote branch tracking is set:
git push buildbot

In this case it is not necessary to manually update the package version. The build system automatically appends the build number to version string, so the next generated package is always sequentially after the previous one.

Deploying release packages

Automated build system is monitoring the release branch on alchemist.cesnet.cz server to build release packages. Anything pushed into that branch will trigger the build. The build is as simple as executing following command:

# For the first time:
git push buildbot release

# When remote branch tracking is set:
git push buildbot

In this case it is not necessary to manually update the package version. The build system automatically appends the build number to version string, so the next generated package is always sequentially after the previous one.

Deploying production packages

Automated build system is monitoring the master branch on alchemist.cesnet.cz server to build production packages. Anything pushed into that branch will trigger the build.

Before deployment change to the devel branch and update release version in following files to appropriate value (for example 2.2.0):

  • lib/mentat/__init__.py

Now perform following series of Git commands to propagate the version to the master branch:

git add package.json lib/mentat/__init__.py
git commit

#----
DEPLOY: Version bumped up to '2.2.0' to build new distribution.

(Redmine issue: #3387)
#----

git push origin
git push buildbot

git checkout release
git merge devel
git push origin
git push buildbot

git checkout master
git merge release
git push origin
git push buildbot

# DO NOT FORGET TO SWITCH BACK TO DEVEL
git checkout devel

# Take inspiration in previous annotated tags:
git tag -l -n999

# Create new anotated tag:
git tag -a v2.2.0

#Second round of improvements in 2.x series
#    
#Extensive release description...
#    
#Full list of resolved issues can be found in our ticket tracking system:
#    
#        https://homeproj.cesnet.cz/versions/82
#

# In case you made a mistake you can delete the tags with following commands:
git tag -d v2.2.0
git push --delete origin v2.2.0
git push --delete buildbot v2.2.0

git push origin v2.2.0
git push buildbot v2.2.0

# Execute build process:
git push buildbot

# Number of commits between last two versions:
git rev-list --count v2.1.0..v2.2.0

# Total changes between last two versions:
git log --numstat --pretty="%H" v2.2.0..v2.3.0 | awk 'NF==3 {plus+=$1; minus+=$2} END {printf("+%d, -%d\n", plus, minus)}'


Back to main page