aboutsummaryrefslogtreecommitdiffstats
path: root/screwdriver/publish-unpublished-rpms-to-jfrog-cloud.sh
blob: dd6f1b5f10f82063a20a7490c569e0a1a8ee0272 (plain) (blame)
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
#!/bin/bash
# Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

set -euo pipefail

readonly MYDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

# Copr repo file
if [[ ! -f /etc/yum.repos.d/group_vespa-vespa-epel-7.repo ]]; then
  cat << 'EOF' > /etc/yum.repos.d/group_vespa-vespa-epel-7.repo
[copr:copr.fedorainfracloud.org:group_vespa:vespa]
name=Copr repo for vespa owned by @vespa
baseurl=https://download.copr.fedorainfracloud.org/results/@vespa/vespa/centos-stream-8-$basearch/
type=rpm-md
gpgcheck=1
gpgkey=https://copr-be.cloud.fedoraproject.org/results/@vespa/vespa/pubkey.gpg
repo_gpgcheck=0
enabled=1
EOF
fi

# JFrog Cloud repo file
if [[ ! -f /etc/yum.repos.d/vespa.repo ]]; then
  cat << 'EOF' > /etc/yum.repos.d/vespa.repo
[vespa-release]
name=Vespa releases
baseurl=https://artifactory.yahooinc.com/artifactory/vespa/centos/8/release/$basearch
gpgcheck=0
enabled=1
EOF
fi

readonly COPR_PACKAGES=$(mktemp)
trap "rm -f $COPR_PACKAGES" EXIT

dnf list -q --disablerepo='*' --enablerepo=copr:copr.fedorainfracloud.org:group_vespa:vespa --showduplicates 'vespa*' | grep "Available Packages" -A 100000 | tail -n +2 | sed '/\.src\ */d' | sed 's/\.x86_64\ */-/' | awk '{print $1}' | grep -v '.src$' > $COPR_PACKAGES

echo "Packages on Copr:"
cat $COPR_PACKAGES
echo 

for pv in $(cat $COPR_PACKAGES); do
  if ! dnf list -q --disablerepo='*' --enablerepo=vespa-release $pv &> /dev/null; then
    echo "$pv not found on JFrog Clould. Downloading..."
    dnf download -q --disablerepo='*' --enablerepo=copr:copr.fedorainfracloud.org:group_vespa:vespa $pv
    echo "$pv downloaded."
  fi
done
echo

if ! ls *.rpm &> /dev/null; then
  echo "All packages already on JFrog Cloud."
  exit 0
fi

echo "RPMs missing on JFrog Cloud:"
ls -lh  *.rpm
echo

UPLOAD_FAILED=false
if [[ -n $SCREWDRIVER ]] && [[ -z $SD_PULL_REQUEST ]]; then
  for rpm in $(ls *.rpm); do
    echo "Uploading $rpm ..."
    if ! $MYDIR/upload-rpm-to-artifactory.sh $rpm ; then
      echo "Could not upload $rpm"
      UPLOAD_FAILED=true
    else
      echo "$rpm uploaded"
    fi
  done
  echo
fi

if $UPLOAD_FAILED; then
  echo "Some RPMs failed to upload"
  exit 1
fi