Merge "Change iotdm-csit-basic to install odl-onem2mall-iotdm"
[releng/builder.git] / jjb / include-raw-deploy-archives.sh
1 #!/bin/bash
2
3 set +e  # Do not affect the build result if some part of archiving fails.
4 # Configure wget to not print download status when we download logs or when
5 # Jenkins is installing Maven.
6 echo "verbose=off" > ~/.wgetrc
7
8 ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
9 [ "$LOGS_SERVER" ] || LOGS_SERVER="https://logs.opendaylight.org"
10 [ "$LOGS_REPO_URL" ] || LOGS_REPO_URL="https://nexus.opendaylight.org/service/local/repositories/logs"
11
12 echo "Build logs: <a href=\"$LOGS_SERVER/$SILO/$ARCHIVES_DIR\">$LOGS_SERVER/$SILO/$ARCHIVES_DIR</a>"
13
14 mkdir .archives
15 cd .archives/
16
17 cat > deploy-archives.xml <<EOF
18 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
19   <modelVersion>4.0.0</modelVersion>
20   <groupId>logs</groupId>
21   <artifactId>logs</artifactId>
22   <version>1.0.0</version>
23   <packaging>pom</packaging>
24
25   <build>
26     <plugins>
27       <plugin>
28         <groupId>org.apache.maven.plugins</groupId>
29         <artifactId>maven-deploy-plugin</artifactId>
30         <version>2.8.2</version>
31         <configuration>
32           <skip>true</skip>
33         </configuration>
34       </plugin>
35       <plugin>
36         <groupId>org.sonatype.plugins</groupId>
37         <artifactId>maven-upload-plugin</artifactId>
38         <version>0.0.1</version>
39         <executions>
40           <execution>
41             <id>publish-site</id>
42             <phase>deploy</phase>
43             <goals>
44               <goal>upload-file</goal>
45             </goals>
46             <configuration>
47               <serverId>opendaylight-log-archives</serverId>
48               <repositoryUrl>$LOGS_REPO_URL/content-compressed</repositoryUrl>
49               <file>archives.zip</file>
50               <repositoryPath>$SILO</repositoryPath>
51             </configuration>
52           </execution>
53         </executions>
54       </plugin>
55     </plugins>
56   </build>
57 </project>
58 EOF
59
60 mkdir -p $ARCHIVES_DIR
61 mkdir -p $WORKSPACE/archives
62 if [ ! -z "${{ARCHIVE_ARTIFACTS}}" ]; then
63     pushd $WORKSPACE
64     shopt -s globstar  # Enable globstar to copy archives
65     archive_artifacts=$(echo ${{ARCHIVE_ARTIFACTS}})
66     for f in $archive_artifacts; do
67         echo "Archiving $f"
68         mkdir -p $WORKSPACE/archives/$(dirname $f)
69         mv $f $WORKSPACE/archives/$f
70     done
71     shopt -u globstar  # Disable globstar once archives are copied
72     popd
73 fi
74
75
76 # Ignore logging if archives doesn't exist
77 mv $WORKSPACE/archives/ $ARCHIVES_DIR > /dev/null 2>&1
78 touch $ARCHIVES_DIR/_build-details.txt
79 echo "build-url: ${{BUILD_URL}}" >> $ARCHIVES_DIR/_build-details.txt
80 env | grep -v PASSWORD > $ARCHIVES_DIR/_build-enviroment-variables.txt
81
82 # capture system info
83 touch $ARCHIVES_DIR/_sys-info.txt
84 {{
85     echo -e "uname -a:\n `uname -a` \n"
86     echo -e "df -h:\n `df -h` \n"
87     echo -e "free -m:\n `free -m` \n"
88     echo -e "nproc:\n `nproc` \n"
89     echo -e "lscpu:\n `lscpu` \n"
90     echo -e "ip addr:\n  `/sbin/ip addr` \n"
91 }} 2>&1 | tee -a $ARCHIVES_DIR/_sys-info.txt
92
93 # Magic string used to trim console logs at the appropriate level during wget
94 echo "-----END_OF_BUILD-----"
95 wget -O $ARCHIVES_DIR/console.log ${{BUILD_URL}}consoleText
96 wget -O $ARCHIVES_DIR/console-timestamp.log "${{BUILD_URL}}/timestamps?time=HH:mm:ss&appendLog"
97 sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console.log
98 sed -i '/^.*-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/console-timestamp.log
99
100 gzip $ARCHIVES_DIR/*.txt $ARCHIVES_DIR/*.log
101 # find and gzip any 'text' files
102 find $ARCHIVES_DIR -type f -print0 \
103                 | xargs -0r file \
104                 | egrep -e ':.*text.*' \
105                 | cut -d: -f1 \
106                 | xargs -d'\n' -r gzip
107
108 zip -r archives.zip $JENKINS_HOSTNAME/ > $ARCHIVES_DIR/_archives-zip.log
109 du -sh archives.zip