Skip to content
Snippets Groups Projects
Unverified Commit 8d2885f6 authored by Maxim Cournoyer's avatar Maxim Cournoyer
Browse files

build: Refactor the deploy-packages script to reduce code duplication.

Also break some very long lines to improve readability.

Change-Id: I5ad936d4c2a6b0a5bb44e32366ee14da85fb1e06
parent 989da6a3
Branches
Tags
No related merge requests found
#!/bin/bash #!/bin/bash
# #
# Copyright (C) 2016-2017 Savoir-faire Linux Inc. # Copyright (C) 2016-2021 Savoir-faire Linux Inc.
# #
# Author: Alexandre Viau <alexandre.viau@savoirfairelinux.com> # Author: Alexandre Viau <alexandre.viau@savoirfairelinux.com>
# Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> # Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
# #
# #
# This script sings and deploys pacakges from packages/distro. # This script syncs and deploys packages from packages/distro.
# It should be ran from the project root directory. # It should be ran from the project root directory.
# #
...@@ -57,9 +57,7 @@ EOF ...@@ -57,9 +57,7 @@ EOF
#################################### ####################################
## Add packages to the repository ## ## Add packages to the repository ##
#################################### ####################################
for package in packages/${DISTRIBUTION}*/*.deb; do for package in packages/${DISTRIBUTION}*/*.deb; do
# Sign the deb # Sign the deb
echo "## signing: ${package} ##" echo "## signing: ${package} ##"
dpkg-sig -k ${KEYID} --sign builder ${package} dpkg-sig -k ${KEYID} --sign builder ${package}
...@@ -116,14 +114,25 @@ function package_rpm() ...@@ -116,14 +114,25 @@ function package_rpm()
echo "## Creating repository ##" echo "## Creating repository ##"
echo "#########################" echo "#########################"
local name
local baseurl
DISTRIBUTION_REPOSITOIRY_FOLDER=$(realpath repositories)/${DISTRIBUTION} DISTRIBUTION_REPOSITOIRY_FOLDER=$(realpath repositories)/${DISTRIBUTION}
mkdir -p ${DISTRIBUTION_REPOSITOIRY_FOLDER} mkdir -p ${DISTRIBUTION_REPOSITOIRY_FOLDER}
# .repo file # .repo file
if [ "${DISTRIBUTION:0:19}" == "opensuse-tumbleweed" ]; then
name="Ring \$basearch - ring"
baseurl="https://dl.jami.net/ring-nightly/${DISTRIBUTION%_*}"
else
name="Ring \$releasever - \$basearch - ring"
baseurl="https://dl.jami.net/ring-nightly/${DISTRIBUTION%_*}_\$releasever"
fi
cat << EOF > ${DISTRIBUTION_REPOSITOIRY_FOLDER}/ring-nightly.repo cat << EOF > ${DISTRIBUTION_REPOSITOIRY_FOLDER}/ring-nightly.repo
[ring] [jami]
name=Ring \$releasever - \$basearch - ring name=$name
baseurl=https://dl.jami.net/ring-nightly/${DISTRIBUTION%_*}_\$releasever baseurl=$baseurl
gpgcheck=1 gpgcheck=1
gpgkey=https://dl.jami.net/ring.pub.key gpgkey=https://dl.jami.net/ring.pub.key
enabled=1 enabled=1
...@@ -156,24 +165,23 @@ EOF ...@@ -156,24 +165,23 @@ EOF
####################################### #######################################
## create the manual download folder ## ## create the manual download folder ##
####################################### #######################################
local packages
DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER=$(realpath manual-download)/${DISTRIBUTION} DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER=$(realpath manual-download)/${DISTRIBUTION}
mkdir -p ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER} mkdir -p ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}
if [ -d "packages/${DISTRIBUTION}/one-click-install/" ];
then if [ -d "packages/${DISTRIBUTION}/one-click-install/" ]; then
for package in packages/${DISTRIBUTION}*/one-click-install/*.rpm; do packages=(packages/${DISTRIBUTION}*/one-click-install/*.rpm)
cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}
package_name=$(rpm -qp --queryformat '%{NAME}' ${package})
package_arch=$(rpm -qp --queryformat '%{ARCH}' ${package})
cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}/${package_name}_${package_arch}.rpm
done
else else
for package in packages/${DISTRIBUTION}*/*.rpm; do packages=(packages/${DISTRIBUTION}*/*.rpm)
fi
for package in "${packages[@]}"; do
cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER} cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}
package_name=$(rpm -qp --queryformat '%{NAME}' ${package}) package_name=$(rpm -qp --queryformat '%{NAME}' ${package})
package_arch=$(rpm -qp --queryformat '%{ARCH}' ${package}) package_arch=$(rpm -qp --queryformat '%{ARCH}' ${package})
cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}/${package_name}_${package_arch}.rpm cp ${package} ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER}/${package_name}_${package_arch}.rpm
done done
fi
} }
...@@ -187,17 +195,14 @@ function package_snap() ...@@ -187,17 +195,14 @@ function package_snap()
echo "## deploying snap ##" echo "## deploying snap ##"
echo "####################" echo "####################"
if [[ "${CHANNEL:0:19}" == "internal_experiment" ]]; if [[ "${CHANNEL:0:19}" == "internal_experiment" ]]; then
then
DISTRIBUTION_REPOSITOIRY_FOLDER=$(realpath repositories)/${DISTRIBUTION} DISTRIBUTION_REPOSITOIRY_FOLDER=$(realpath repositories)/${DISTRIBUTION}
mkdir -p ${DISTRIBUTION_REPOSITOIRY_FOLDER} mkdir -p ${DISTRIBUTION_REPOSITOIRY_FOLDER}
cp packages/${DISTRIBUTION}*/*.snap ${DISTRIBUTION_REPOSITOIRY_FOLDER}/ cp packages/${DISTRIBUTION}*/*.snap ${DISTRIBUTION_REPOSITOIRY_FOLDER}/
elif [[ "${CHANNEL:0:7}" == "nightly" ]]; elif [[ "${CHANNEL:0:7}" == "nightly" ]]; then
then
snapcraft login --with ${SNAPCRAFT_LOGIN} snapcraft login --with ${SNAPCRAFT_LOGIN}
snapcraft push packages/${DISTRIBUTION}*/*.snap --release edge snapcraft push packages/${DISTRIBUTION}*/*.snap --release edge
elif [[ "${CHANNEL:0:6}" == "stable" ]]; elif [[ "${CHANNEL:0:6}" == "stable" ]]; then
then
snapcraft login --with ${SNAPCRAFT_LOGIN} snapcraft login --with ${SNAPCRAFT_LOGIN}
snapcraft push packages/${DISTRIBUTION}*/*.snap --release stable snapcraft push packages/${DISTRIBUTION}*/*.snap --release stable
fi fi
...@@ -215,19 +220,20 @@ function deploy() ...@@ -215,19 +220,20 @@ function deploy()
RSYNC_RSH="ssh -i ${SSH_IDENTIY_FILE}" RSYNC_RSH="ssh -i ${SSH_IDENTIY_FILE}"
fi fi
# Deploy the repository
echo "##########################" echo "##########################"
echo "## deploying repository ##" echo "## deploying repository ##"
echo "##########################" echo "##########################"
echo "Using RSYNC_RSH='${RSYNC_RSH}'" echo "Using RSYNC_RSH='${RSYNC_RSH}'"
rsync --archive --recursive --verbose --delete ${DISTRIBUTION_REPOSITOIRY_FOLDER} ${REMOTE_REPOSITORY_LOCATION} rsync --archive --recursive --verbose \
--delete ${DISTRIBUTION_REPOSITOIRY_FOLDER} \
${REMOTE_REPOSITORY_LOCATION}
# deploy the manual download files
echo "#####################################" echo "#####################################"
echo "## deploying manual download files ##" echo "## deploying manual download files ##"
echo "#####################################" echo "#####################################"
rsync --archive --recursive --verbose --delete ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER} ${REMOTE_MANUAL_DOWNLOAD_LOCATION} rsync --archive --recursive --verbose \
--delete ${DISTRIBUTION_MANUAL_DOWNLOAD_FOLDER} \
${REMOTE_MANUAL_DOWNLOAD_LOCATION}
} }
...@@ -237,14 +243,16 @@ function deploy() ...@@ -237,14 +243,16 @@ function deploy()
function package() function package()
{ {
if [[ "${DISTRIBUTION:0:6}" == "debian" || "${DISTRIBUTION:0:6}" == "ubuntu" || "${DISTRIBUTION:0:8}" == "raspbian" ]]; if [[ "${DISTRIBUTION:0:6}" == "debian" \
then || "${DISTRIBUTION:0:6}" == "ubuntu" \
|| "${DISTRIBUTION:0:8}" == "raspbian" ]]; then
package_deb package_deb
elif [[ "${DISTRIBUTION:0:6}" == "fedora" || "${DISTRIBUTION:0:4}" == "rhel" || "${DISTRIBUTION:0:13}" == "opensuse-leap" || "${DISTRIBUTION:0:19}" == "opensuse-tumbleweed" ]]; elif [[ "${DISTRIBUTION:0:6}" == "fedora" \
then || "${DISTRIBUTION:0:4}" == "rhel" \
|| "${DISTRIBUTION:0:13}" == "opensuse-leap" \
|| "${DISTRIBUTION:0:19}" == "opensuse-tumbleweed" ]]; then
package_rpm package_rpm
elif [[ "${DISTRIBUTION:0:4}" == "snap" ]]; elif [[ "${DISTRIBUTION:0:4}" == "snap" ]]; then
then
package_snap package_snap
else else
echo "ERROR: Distribution '${DISTRIBUTION}' is unsupported" echo "ERROR: Distribution '${DISTRIBUTION}' is unsupported"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment