summaryrefslogtreecommitdiffstats
path: root/jjb/releng/opnfv-repo-archiver.sh
diff options
context:
space:
mode:
authorRudy Grigar <rgrigar@linuxfoundation.org>2017-06-15 15:48:34 +0800
committerTrevor Bramwell <tbramwell@linuxfoundation.org>2017-06-22 10:24:15 -0700
commit8029f884c0f49fc42e57ce82c73e19bdd4b3d4a0 (patch)
treecd9a38232b9ebf2c3b556a8ad15f9b54b76cefe4 /jjb/releng/opnfv-repo-archiver.sh
parente322400772bccaebb82053d4f1e58db037ec2242 (diff)
Add repository archiver for compliance checks
Change-Id: Ibf82ed705202f6bd343c59862018d67ba1f31496 Signed-off-by: Rudy Grigar <rgrigar@linuxfoundation.org> Signed-off-by: Trevor Bramwell <tbramwell@linuxfoundation.org>
Diffstat (limited to 'jjb/releng/opnfv-repo-archiver.sh')
-rw-r--r--jjb/releng/opnfv-repo-archiver.sh66
1 files changed, 66 insertions, 0 deletions
diff --git a/jjb/releng/opnfv-repo-archiver.sh b/jjb/releng/opnfv-repo-archiver.sh
new file mode 100644
index 000000000..c9fdba379
--- /dev/null
+++ b/jjb/releng/opnfv-repo-archiver.sh
@@ -0,0 +1,66 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2016 Linux Foundation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+set -o errexit
+set -o pipefail
+export PATH=$PATH:/usr/local/bin/
+
+DATE="$(date +%Y%m%d)"
+
+declare -a PROJECT_LIST
+EXCLUDE_PROJECTS="All-Projects|All-Users|securedlab"
+CLONE_PATH="$WORKSPACE/opnfv-repos"
+
+# Generate project list from gerrit
+PROJECT_LIST=($(ssh -p 29418 jenkins-ci@gerrit.opnfv.org gerrit ls-projects | egrep -v $EXCLUDE_PROJECTS))
+
+echo "Cloning all OPNFV repositories"
+echo "------------------------------"
+
+for PROJECT in "${PROJECT_LIST[@]}"; do
+ echo "> Cloning $PROJECT"
+ if [ ! -d "$CLONE_PATH/$PROJECT" ]; then
+ git clone "https://gerrit.opnfv.org/gerrit/$PROJECT.git" $CLONE_PATH/$PROJECT
+ else
+ pushd "$CLONE_PATH/$PROJECT" &>/dev/null
+ git pull -f
+ popd &> /dev/null
+ fi
+
+ # Don't license scan kernel or qemu in kvmfornfv
+ if [ "$PROJECT" == "kvmfornfv" ]; then
+ rm -rf "$CLONE_PATH/$PROJECT/{kernel,qemu}"
+ fi
+done
+
+echo "Finished cloning OPNFV repositories"
+echo "-----------------------------------"
+
+# Copy repos and clear git data
+echo "Copying repos to $WORKSPACE/opnfv-archive and removing .git files"
+cp -R $CLONE_PATH $WORKSPACE/opnfv-archive
+find $WORKSPACE/opnfv-archive -type d -iname '.git' -exec rm -rf {} +
+find $WORKSPACE/opnfv-archive -type f -iname '.git*' -exec rm -rf {} +
+
+# Create archive
+echo "Creating archive: opnfv-archive-$DATE.tar.gz"
+echo "--------------------------------------"
+cd $WORKSPACE
+tar -czf "opnfv-archive-$DATE.tar.gz" opnfv-archive && rm -rf opnfv-archive
+echo "Archiving Complete."
+
+echo "Uploading artifacts"
+echo "--------------------------------------"
+
+gsutil cp "$WORKSPACE/opnfv-archive-$DATE.tar.gz" \
+ "gs://opnfv-archive/opnfv-archive-$DATE.tar.gz" 2>&1
+
+rm -f opnfv-archive-$DATE.tar.gz
+
+echo "Finished"