Merge "Improve archive-build macro to gzip any text file"
[releng/builder.git] / jjb / include-raw-deploy-archives.sh
1 #!/bin/bash
2 ARCHIVES_DIR="$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER"
3 LOGS_SERVER="https://logs.opendaylight.org"
4 echo "Build logs: <a href=\"$LOGS_SERVER/$SILO/$ARCHIVES_DIR\">$LOGS_SERVER/$SILO/$ARCHIVES_DIR</a>"
5
6 mkdir .archives
7 cd .archives/
8
9 cat > deploy-archives.xml <<EOF
10 <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">
11   <modelVersion>4.0.0</modelVersion>
12   <groupId>logs</groupId>
13   <artifactId>logs</artifactId>
14   <version>1.0.0</version>
15   <packaging>pom</packaging>
16
17   <build>
18     <plugins>
19       <plugin>
20         <groupId>org.apache.maven.plugins</groupId>
21         <artifactId>maven-deploy-plugin</artifactId>
22         <version>2.8.2</version>
23         <configuration>
24           <skip>true</skip>
25         </configuration>
26       </plugin>
27       <plugin>
28         <groupId>org.sonatype.plugins</groupId>
29         <artifactId>maven-upload-plugin</artifactId>
30         <version>0.0.1</version>
31         <executions>
32           <execution>
33             <id>publish-site</id>
34             <phase>deploy</phase>
35             <goals>
36               <goal>upload-file</goal>
37             </goals>
38             <configuration>
39               <serverId>opendaylight-log-archives</serverId>
40               <repositoryUrl>https://nexus.opendaylight.org/service/local/repositories/logs/content-compressed</repositoryUrl>
41               <file>archives.zip</file>
42               <repositoryPath>$SILO</repositoryPath>
43             </configuration>
44           </execution>
45         </executions>
46       </plugin>
47     </plugins>
48   </build>
49 </project>
50 EOF
51
52 mkdir -p $ARCHIVES_DIR
53 mkdir -p $WORKSPACE/archives
54 if [ ! -z $ARCHIVE_ARTIFACTS ]; then
55     pushd $WORKSPACE
56     shopt -s globstar  # Enable globstar to copy archives
57     archive_artifacts=$(echo $ARCHIVE_ARTIFACTS)
58     for f in $archive_artifacts; do
59         echo "Archiving $f"
60         mkdir -p $WORKSPACE/archives/$(dirname $f)
61         mv $f $WORKSPACE/archives/$f
62     done
63     shopt -u globstar  # Disable globstar once archives are copied
64     popd
65 fi
66 # Ignore logging if archives doesn't exist
67 mv $WORKSPACE/archives/ $ARCHIVES_DIR > /dev/null 2>&1
68 touch $ARCHIVES_DIR/_build-details.txt
69 echo "build-url: ${{BUILD_URL}}" >> $ARCHIVES_DIR/_build-details.txt
70 env > $ARCHIVES_DIR/_build-enviroment-variables.txt
71
72 # Magic string used to trim console logs at the appropriate level during wget
73 echo "-----END_OF_BUILD-----"
74 wget -O $ARCHIVES_DIR/_console-output.log ${{BUILD_URL}}consoleText
75 sed -i '/^-----END_OF_BUILD-----$/,$d' $ARCHIVES_DIR/_console-output.log
76
77 gzip $ARCHIVES_DIR/*.txt $ARCHIVES_DIR/*.log
78 # find and gzip any 'text' files
79 find $ARCHIVES_DIR -type f -print0 \
80                 | xargs -0r file \
81                 | egrep -e ':.*text.*' \
82                 | cut -d: -f1 \
83                 | xargs -d'\n' -r gzip
84
85 zip -r archives.zip $JENKINS_HOSTNAME/
86 du -sh archives.zip