blob: a4ae9b1669ceb1618a4d95570543fd3183a6d65f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
#!/bin/bash
# Copyright (c) 2021 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
echo "---> jjb/scripts/packagecloud_push.sh"
set -euxo pipefail
line="*************************************************************************"
# Nothing was built if this is a merge job being run when
# the git HEAD id is not the same as the Gerrit New Revision ID
if [[ ${JOB_NAME} == *merge* ]] && [ -n "${GERRIT_NEWREV:-}" ] &&
[ "$GERRIT_NEWREV" != "$GIT_COMMIT" ] ; then
echo -e "\n$line\nSkipping package push. A newer patch has been merged.\n$line\n"
exit 0
fi
DRYRUN="${DRYRUN:-}"
if [ "${DRYRUN,,}" = "true" ] ; then
echo -e "\n$line\nSkipping package push because DRYRUN is '${DRYRUN,,}'.\n$line\n"
exit 0
fi
echo "STARTING PACKAGECLOUD PUSH"
sleep 10
FACTER_OS=$(/usr/bin/facter operatingsystem)
push_cmd=""
push_ext_deps_cmd=""
# PCIO_CO and SILO are Jenkins Global Environment variables defined in
# .../ci-management/jenkins-config/global-vars-*.sh
if [ -f ~/.packagecloud ]; then
case "$FACTER_OS" in
Debian)
FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
DEBS=$(find . -type f -iname '*.deb' | grep -v vpp-ext-deps)
push_cmd="package_cloud push ${PCIO_CO}/${STREAM}/debian/${FACTER_LSBNAME}/main/ ${DEBS}"
EXT_DEPS_DEB=$(find . -type f -iname 'vpp-ext-deps*.deb')
if [ -n "$EXT_DEPS_DEB" ] ; then
push_ext_deps_cmd="package_cloud push ${PCIO_CO}/${STREAM}/debian/${FACTER_LSBNAME}/main/ ${EXT_DEPS_DEB}"
fi
;;
Ubuntu)
FACTER_LSBNAME=$(/usr/bin/facter lsbdistcodename)
DEBS=$(find . -type f -iname '*.deb' | grep -v vpp-ext-deps)
push_cmd="package_cloud push ${PCIO_CO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/ ${DEBS}"
EXT_DEPS_DEB=$(find . -type f -iname 'vpp-ext-deps*.deb')
if [ -n "$EXT_DEPS_DEB" ] ; then
push_ext_deps_cmd="package_cloud push ${PCIO_CO}/${STREAM}/ubuntu/${FACTER_LSBNAME}/main/ ${EXT_DEPS_DEB}"
fi
;;
CentOS)
FACTER_OSMAJREL=$(/usr/bin/facter operatingsystemmajrelease)
FACTER_ARCH=$(/usr/bin/facter architecture)
RPMS=$(find . -type f -iregex '.*/.*\.\(s\)?rpm' | grep -v vpp-ext-deps)
push_cmd="package_cloud push ${PCIO_CO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/ ${RPMS}"
EXT_DEPS_RPM=$(find . -type f -iname 'vpp-ext-deps*.rpm')
if [ -n "$EXT_DEPS_RPM" ] ; then
push_ext_deps_cmd="package_cloud push ${PCIO_CO}/${STREAM}/el/${FACTER_OSMAJREL}/os/${FACTER_ARCH}/ ${EXT_DEPS_RPM}"
fi
;;
*)
echo -e "\n$line\n* ERROR: Unsupported OS '$FACTER_OS'\n* PACKAGECLOUD PUSH FAILED!\n$line\n"
exit 1
;;
esac
if [ "${SILO,,}" = "sandbox" ] ; then
echo "SANDBOX: skipping '$push_cmd'"
if [ -n "$push_ext_deps_cmd" ] ; then
echo "SANDBOX: skipping '$push_ext_deps_cmd'"
fi
else
$push_cmd
if [ -n "$push_ext_deps_cmd" ] ; then
# Don't fail script if vpp-ext-deps push fails.
set +e
$push_ext_deps_cmd
set -e
fi
fi
else
echo "ERROR: Missing '~/.packagecloud' for user '$(id)'"
echo "PACKAGECLOUD PUSH FAILED!"
exit 1
fi
echo -e "\n$line\n* PACKAGECLOUD PUSH COMPLETE\n$line\n"
|