Commit 256b4e89 authored by aviau's avatar aviau

Create deploy-packages script

This new scripts creates a local repository and deploys it with rsync.
It will be used by Jenkins to deploy packages to dl.ring.cx.

Change-Id: Ib1d9526e88fa15b053ae234f05839e86a3ce263a
Tuleap: #872
parent cf27e450
......@@ -7,3 +7,4 @@ docs/build
packages
ring_*.tar.gz
Makefile.packaging.distro_targets
repositories
#!/bin/bash
#
# Copyright (C) 2016 Savoir-faire Linux Inc.
#
# Author: Alexandre Viau <alexandre.viau@savoirfairelinux.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
#
# This script sings and deploys pacakges from packages/distro.
# It should be ran from the project root directory.
#
# Exit immediately if a command exits with a non-zero status
set -e
for i in "$@"
do
case $i in
--distribution=*)
DISTRIBUTION="${i#*=}"
shift
;;
--keyid=*)
KEYID="${i#*=}"
shift
;;
--remote-location=*)
REMOTE_LOCATION="${i#*=}"
shift
;;
*)
echo "Unrecognized option ${i}"
exit 1
;;
esac
done
##################################################
## Create local repository for the given distro ##
##################################################
echo "#########################"
echo "## Creating repository ##"
echo "#########################"
DISTRIBUTION_FOLDER=$(realpath repositories)/${DISTRIBUTION}
rm -rf ${DISTRIBUTION_FOLDER}
mkdir -p ${DISTRIBUTION_FOLDER}/conf
# Distributions file
cat << EOF > ${DISTRIBUTION_FOLDER}/conf/distributions
Origin: ring
Label: Ring ${DISTRIBUTION} Repository
Codename: ring
Architectures: i386 amd64
Components: main
Description: This repository contains Ring ${DISTRIBUTION} packages
SignWith: ${KEYID}
EOF
# Options file
cat << EOF > ${DISTRIBUTION_FOLDER}/conf/options
basedir ${DISTRIBUTION_FOLDER}
EOF
####################################
## Add packages to the repository ##
####################################
# Sign the debs
echo "##################"
echo "## signing debs ##"
echo "##################"
for package in packages/${DISTRIBUTION}*/*.deb; do
dpkg-sig -k ${KEYID} --sign builder ${package}
done
# Include the debs
echo "####################"
echo "## including debs ##"
echo "####################"
for package in packages/${DISTRIBUTION}*/*.deb; do
reprepro --verbose --basedir ${DISTRIBUTION_FOLDER} includedeb ring ${package}
done
# Rebuild the index
reprepro --verbose --basedir ${DISTRIBUTION_FOLDER} export ring
# Deploy the repository
echo "##########################"
echo "## deploying repository ##"
echo "##########################"
rsync --archive --recursive --verbose --delete ${DISTRIBUTION_FOLDER} ${REMOTE_LOCATION}
# Remove the local copy of the repository
rm -rf repositories
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment