Adding support for package versionning
Create a tag with release/X.X.X to change the package version
This commit is contained in:
parent
a4b739dc97
commit
8aec313e11
|
@ -9,30 +9,44 @@ fi
|
||||||
|
|
||||||
# Get commits log as changelog
|
# Get commits log as changelog
|
||||||
|
|
||||||
logs=$(git log --pretty=format:"%an - %h : %s" | sed 's/"/\\"/g')
|
tags=$(git tag master -l "release/*")
|
||||||
|
|
||||||
# Set the top commiter as the maintainer of the project if not defined
|
if [[ -z ${tags} ]]
|
||||||
top_contributor=$(git log --pretty=short | git shortlog -s -n -e | sed 's/^\s*[0-9]*\s*//g' | head -n 1)
|
then
|
||||||
maintainer=$(get_opt maintainer "${top_contributor}")
|
error "No relase tag found, you repo must have a tag like 'release/X.X'"
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
project_name=$(get_opt project_name)
|
git checkout $(get_opt build_branch dist/ubuntu/precise/master)
|
||||||
version=$(get_opt version 0.0.0)
|
touch debian/changelog
|
||||||
distribution=$(get_opt distribution UNRELEASED)
|
|
||||||
urgency=$(get_opt urgency low)
|
|
||||||
|
|
||||||
commit_count=$(git rev-list --count --first-parent HEAD)
|
for tag in ${tags}
|
||||||
current_commit=$(git log -n 1 --pretty=format:"%h")
|
do
|
||||||
version_suffix=${commit_count}~${current_commit}
|
logs=$(git log --pretty=format:"%an - %h : %s" ${tag} | sed 's/"/\\"/g')
|
||||||
|
|
||||||
echo "${project_name} (${version}.tamarin${version_suffix}) ${distribution}; urgency=${urgency}" > debian/changelog
|
# Set the top commiter as the maintainer of the project if not defined
|
||||||
|
top_contributor=$(git log --pretty=short | git shortlog -s -n -e | sed 's/^\s*[0-9]*\s*//g' | head -n 1)
|
||||||
|
maintainer=$(get_opt maintainer "${top_contributor}")
|
||||||
|
|
||||||
echo >> debian/changelog
|
project_name=$(get_opt project_name)
|
||||||
|
version=${tag#*/} #$(get_opt version 0.0.0)
|
||||||
|
distribution=$(get_opt distribution UNRELEASED)
|
||||||
|
urgency=$(get_opt urgency low)
|
||||||
|
|
||||||
while read -r entry; do
|
commit_count=$(git rev-list --count --first-parent HEAD)
|
||||||
|
current_commit=$(git log -n 1 --pretty=format:"%h")
|
||||||
|
version_suffix=${commit_count}~${current_commit}
|
||||||
|
|
||||||
|
echo "${project_name} (${version}.tamarin${version_suffix}) ${distribution}; urgency=${urgency}" >> debian/changelog
|
||||||
|
|
||||||
|
echo >> debian/changelog
|
||||||
|
|
||||||
|
while read -r entry; do
|
||||||
echo " * ${entry}" >> debian/changelog
|
echo " * ${entry}" >> debian/changelog
|
||||||
done <<< "$(echo -e "${logs}" | sed 's/^"//')"
|
done <<< "$(echo -e "${logs}" | sed 's/^"//')"
|
||||||
|
|
||||||
echo >> debian/changelog
|
echo >> debian/changelog
|
||||||
|
|
||||||
echo " -- ${maintainer} $(date -R)" >> debian/changelog
|
echo " -- ${maintainer} $(date -R)" >> debian/changelog
|
||||||
echo >> debian/changelog
|
echo >> debian/changelog
|
||||||
|
done
|
||||||
|
|
|
@ -8,7 +8,8 @@ source "${TAMARIN_UTIL}"
|
||||||
DIST_DIR="${BASE_DIR}/dist"
|
DIST_DIR="${BASE_DIR}/dist"
|
||||||
SRC_DIR="${BASE_DIR}/src"
|
SRC_DIR="${BASE_DIR}/src"
|
||||||
PROJECT_NAME=${1}
|
PROJECT_NAME=${1}
|
||||||
BUILD_DIR=${2}
|
BUILD_BRANCH=${2}
|
||||||
|
BUILD_DIR=${3}
|
||||||
|
|
||||||
function build_project()
|
function build_project()
|
||||||
{
|
{
|
||||||
|
@ -17,6 +18,7 @@ function build_project()
|
||||||
|
|
||||||
set_opt project_name "${PROJECT_NAME}"
|
set_opt project_name "${PROJECT_NAME}"
|
||||||
set_opt build_dir "${BUILD_DIR}"
|
set_opt build_dir "${BUILD_DIR}"
|
||||||
|
set_opt build_branch "${BUILD_BRANCH}"
|
||||||
|
|
||||||
local workspace=$(mktemp -p ${BUILD_DIR} -d)/${PROJECT_NAME}
|
local workspace=$(mktemp -p ${BUILD_DIR} -d)/${PROJECT_NAME}
|
||||||
info "Build dir is ${workspace}"
|
info "Build dir is ${workspace}"
|
||||||
|
|
13
package.sh
13
package.sh
|
@ -18,6 +18,7 @@ function show_usage {
|
||||||
echo " -i Optional : Name of the Docker image to use for build (default: debian:jessie)"
|
echo " -i Optional : Name of the Docker image to use for build (default: debian:jessie)"
|
||||||
echo " -k Optional : Keep the Docker container after build "
|
echo " -k Optional : Keep the Docker container after build "
|
||||||
echo " -b Optional : Build directory (default /tmp)"
|
echo " -b Optional : Build directory (default /tmp)"
|
||||||
|
echo " -B Optional : Build branch (for git projects only) (default dist/ubuntu/precise/master)"
|
||||||
echo
|
echo
|
||||||
exit 2
|
exit 2
|
||||||
}
|
}
|
||||||
|
@ -46,7 +47,7 @@ function create_container {
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
|
||||||
RUN apt-get update &&\
|
RUN apt-get update &&\
|
||||||
apt-get install --yes build-essential devscripts equivs
|
apt-get install --yes build-essential devscripts equivs git-buildpackage
|
||||||
|
|
||||||
RUN mkdir /root/.tamarin
|
RUN mkdir /root/.tamarin
|
||||||
RUN mkdir /project
|
RUN mkdir /project
|
||||||
|
@ -61,10 +62,10 @@ EOF
|
||||||
|
|
||||||
if [[ -z ${BUILD_DIR} ]]
|
if [[ -z ${BUILD_DIR} ]]
|
||||||
then
|
then
|
||||||
echo " CMD /root/.tamarin/lib/build.sh ${projectName} /tmp" >> "$temp_dir/Dockerfile"
|
echo " CMD /root/.tamarin/lib/build.sh ${projectName} ${BUILD_BRANCH} /tmp" >> "$temp_dir/Dockerfile"
|
||||||
else
|
else
|
||||||
echo " VOLUME /build" >> "$temp_dir/Dockerfile"
|
echo " VOLUME /build" >> "$temp_dir/Dockerfile"
|
||||||
echo " CMD /root/.tamarin/lib/build.sh ${projectName} /build" >> "$temp_dir/Dockerfile"
|
echo " CMD /root/.tamarin/lib/build.sh ${projectName} ${BUILD_BRANCH} /build" >> "$temp_dir/Dockerfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec_hooks "containerbuild" "$temp_dir"
|
exec_hooks "containerbuild" "$temp_dir"
|
||||||
|
@ -115,7 +116,7 @@ function main {
|
||||||
#
|
#
|
||||||
# Parsing options
|
# Parsing options
|
||||||
#
|
#
|
||||||
while getopts "kp:d:i:b:" option
|
while getopts "kp:d:i:b:B:" option
|
||||||
do
|
do
|
||||||
case $option in
|
case $option in
|
||||||
k)
|
k)
|
||||||
|
@ -133,6 +134,9 @@ do
|
||||||
b)
|
b)
|
||||||
BUILD_DIR=$(readlink -f ${OPTARG})
|
BUILD_DIR=$(readlink -f ${OPTARG})
|
||||||
;;
|
;;
|
||||||
|
B)
|
||||||
|
BUILD_BRANCH=${OPTARG}
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
show_usage
|
show_usage
|
||||||
;;
|
;;
|
||||||
|
@ -142,6 +146,7 @@ done
|
||||||
[[ -z ${PROJECT_PATH} ]] && show_usage
|
[[ -z ${PROJECT_PATH} ]] && show_usage
|
||||||
[[ -z ${PROJECT_DEST} ]] && PROJECT_DEST=$(readlink -f "./packages")
|
[[ -z ${PROJECT_DEST} ]] && PROJECT_DEST=$(readlink -f "./packages")
|
||||||
[[ -z ${BASE_IMAGE} ]] && BASE_IMAGE="debian:jessie"
|
[[ -z ${BASE_IMAGE} ]] && BASE_IMAGE="debian:jessie"
|
||||||
|
[[ -z ${BUILD_BRANCH} ]] && BUILD_BRANCH="dist/ubuntu/precise/master"
|
||||||
[[ -z ${PERSIST_CONTAINER} ]] && PERSIST_CONTAINER=0
|
[[ -z ${PERSIST_CONTAINER} ]] && PERSIST_CONTAINER=0
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue