Project

General

Profile

Revision b5e8802d

Added by Daniel Lobato Garcia over 7 years ago

Refs #11204 - Automate foreman-packaging pull-requests

View differences:

release/rollout-release
2 2

  
3 3
GITHUB_TOKEN=$(cat ~/.codereview)
4 4
RED='\e[31m';
5
BLUE='\e[44m';
5 6
GREEN='\e[32m';
7
PLUGIN_DIR=$(pwd)
8
DATE="$(date +'%a %b %d %Y')"
6 9

  
7 10
echo -e "${GREEN} foreman-docker releaser $1\033[0m"
11
echo -e "--------------------------"
12
echo -e "${BLUE} Part 1: Rubygems $1\033[0m"
13
echo -e "--------------------------"
8 14
echo -e "${GREEN} Current version: $(grep VERSION lib/foreman_docker/version.rb) $1\033[0m"
9 15
echo -e "${GREEN} -- Checking out branch master $1\033[0m"
10 16
hub checkout master --quiet
......
14 20
fi
15 21
read -p "What version are we going to release today? : " VERSION
16 22
sed -i s/"VERSION = .*"/"VERSION = '${VERSION}'"/g  lib/foreman_docker/version.rb
17

  
18 23
echo -e "${GREEN} -- Creating contributors list and CHANGELOG $1\033[0m"
19 24
./release/changelog
20

  
21 25
echo -e "${GREEN} -- Commiting version bump $1\033[0m"
22 26
git add lib/foreman_docker/version.rb
23 27
git add CHANGELOG
......
40 44
gem push foreman_docker-${VERSION}.gem
41 45

  
42 46
echo -e "${GREEN} -- Done! Gem is published in rubygems and your repository is tagged. $1\033[0m"
43
echo -e "${GREEN} -- To complete the release just update the version on foreman-packaging rpm/deb packages, $1\033[0m"
44
echo -e "${GREEN} -- and submit a pull request to rpm/develop and deb/develop.$1\033[0m"
47

  
48
###########################
49
####### PACKAGING #########
50
###########################
51

  
52
echo -e "--------------------------"
53
echo -e "${BLUE} Part 2: Red Hat packaging $1\033[0m"
54
echo -e "--------------------------"
55

  
56
# Assume there is a foreman-packaging directory with two remotes:
57
#   origin pointing to fork
58
#   upstream pointing to theforeman/foreman-packaging
59
cd foreman-packaging
60
read -p "CHANGELOG: What's your full name? e.g: John Doe : " NAME
61
read -p "CHANGELOG: What's your email? e.g: jdoe@foo.bar : " EMAIL
62

  
63
## RPM packaging
64
git checkout rpm/develop
65
git pull --rebase upstream rpm/develop
66
echo -e "${GREEN} -- Checking out branch rpm/foreman-docker-$VERSION $1\033[0m"
67
git checkout -b rpm/foreman-docker-${VERSION}
68
echo -e "${GREEN} -- Bumping version and changelog $1\033[0m"
69
# Bump rubygem-foreman_docker.spec version
70
sed -i s/"Version: .*"/"Version: ${VERSION}"/g rubygem-foreman_docker/rubygem-foreman_docker.spec
71
## Add changelog date and message
72
awk -i inplace -v VERSION="$VERSION" -v EMAIL="$EMAIL" -v NAME="$NAME" -v DATE="$(date +'%a %b %d %Y')" '/%changelog/ { print; print "* " DATE " " NAME " <" EMAIL "> " VERSION "-1.fm1_10"; print "- plugins:foreman_docker - Release " VERSION " (" EMAIL ")"; print ""; next }1' rubygem-foreman_docker/rubygem-foreman_docker.spec
73
echo -e "${GREEN} -- Annexing rubygem to commit $1\033[0m"
74
git rm rubygem-foreman_docker/foreman_docker-*.gem
75
cp $PLUGIN_DIR/foreman_docker-${VERSION}.gem rubygem-foreman_docker/
76
git annex add rubygem-foreman_docker/foreman_docker-${VERSION}.gem
77
echo -e "${GREEN} -- Committing changes to git $1\033[0m"
78
git add .
79
git commit -m "plugins:foreman_docker - Release ${VERSION}"
80
git push origin rpm/foreman-docker-${VERSION}
81
hub pull-request -b rpm/develop
82
echo -e "${GREEN} -- Pull request submitted to rpm/develop $1\033[0m"
83

  
84
echo -e "--------------------------"
85
echo -e "${BLUE} Part 2.1: Debian packaging $1\033[0m"
86
echo -e "--------------------------"
87
git checkout deb/develop
88
git pull --rebase upstream deb/develop
89
echo -e "${GREEN} -- Checking out branch deb/foreman-docker-$VERSION $1\033[0m"
90
git checkout -b deb/foreman-docker-${VERSION}
91
echo -e "${GREEN} -- Bumping version and changelog $1\033[0m"
92
# Bump version in plugins/ruby-foreman-docker/foreman_docker.rb with sed
93
sed -i s/"gem 'foreman_docker', .*"/"gem 'foreman_docker', '${VERSION}'"/g  plugins/ruby-foreman-docker/foreman_docker.rb
94
# update changelog in plugins/ruby-foreman-docker/debian/changelog
95
sed -i "1i ruby-foreman-docker ($VERSION-1) stable; urgency=low\n\n  * Update release to $VERSION\n -- $NAME <$EMAIL> $(date +'%a, %b %d %Y %T %z')" plugins/ruby-foreman-docker/debian/changelog
96
# update gem.list in plugins/ruby-foreman-docker/debian/gem.list
97
sed -i s/"foreman_docker.*"/"foreman_docker-${VERSION}.gem"/g  plugins/ruby-foreman-docker/debian/gem.list
98
echo -e "${GREEN} -- Committing changes to git $1\033[0m"
99
git add .
100
git commit -m "plugins:foreman_docker - Release ${VERSION}"
101
git push origin deb/foreman-docker-${VERSION}
102
hub pull-request -b deb/develop
103
echo -e "${GREEN} -- Pull request submitted to deb/develop $1\033[0m"
104
echo -e "${BLUE} -- DONE! Congratulations, your plugin has been released. $1\033[0m"

Also available in: Unified diff