| #!/bin/bash |
| |
| #******************************************************************************* |
| # Copyright (c) 2019 IBM Corporation and others. |
| # |
| # This program and the accompanying materials |
| # are made available under the terms of the Eclipse Public License 2.0 |
| # which accompanies this distribution, and is available at |
| # https://www.eclipse.org/legal/epl-2.0/ |
| # |
| # SPDX-License-Identifier: EPL-2.0 |
| # |
| # Contributors: |
| # Kit Lo - initial API and implementation |
| #******************************************************************************* |
| |
| if [ $# -ne 1 ]; then |
| echo USAGE: $0 env_file |
| exit 1 |
| fi |
| |
| source $CJE_ROOT/scripts/common-functions.shsource |
| source $1 |
| |
| mkdir -p $CJE_ROOT/$DROP_DIR/$BUILD_ID |
| mkdir -p $CJE_ROOT/$UPDATES_DIR/$BUILD_ID |
| mkdir -p $CJE_ROOT/$EQUINOX_DROP_DIR/$BUILD_ID |
| mkdir -p $CJE_ROOT/$DROP_DIR/$BUILD_ID/testresults/consolelogs |
| |
| # gather maven properties |
| cp $CJE_ROOT/$AGG_DIR/eclipse-platform-parent/target/mavenproperties.properties $CJE_ROOT/$DROP_DIR/$BUILD_ID/mavenproperties.properties |
| |
| # gather repo |
| echo $PATCH_BUILD |
| if [ -z $PATCH_BUILD ]; then |
| REPO_DIR=$PLATFORM_REPO_DIR |
| else |
| PATCH_BUILD_GENERIC=java13patch |
| REPO_DIR=$ECLIPSE_BUILDER_DIR/$PATCH_BUILD/eclipse.releng.repository.$PATCH_BUILD_GENERIC/target/repository |
| fi |
| |
| if [ -d $REPO_DIR ]; then |
| pushd $REPO_DIR |
| cp -r * $CJE_ROOT/$UPDATES_DIR/$BUILD_ID |
| popd |
| fi |
| |
| if [ -z $PATCH_BUILD ]; then |
| # gather sdk |
| TARGET_PRODUCTS_DIR=$ECLIPSE_BUILDER_DIR/sdk/target/products |
| if [ -d $TARGET_PRODUCTS_DIR ]; then |
| pushd $TARGET_PRODUCTS_DIR |
| cp org.eclipse.sdk.ide-linux.gtk.ppc64le.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-SDK-$BUILD_ID-linux-gtk-ppc64le.tar.gz |
| cp org.eclipse.sdk.ide-linux.gtk.x86_64.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-SDK-$BUILD_ID-linux-gtk-x86_64.tar.gz |
| cp org.eclipse.sdk.ide-macosx.cocoa.x86_64.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-SDK-$BUILD_ID-macosx-cocoa-x86_64.tar.gz |
| cp org.eclipse.sdk.ide-macosx.cocoa.x86_64.dmg $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-SDK-$BUILD_ID-macosx-cocoa-x86_64.dmg |
| cp org.eclipse.sdk.ide-win32.win32.x86_64.zip $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-SDK-$BUILD_ID-win32-x86_64.zip |
| popd |
| fn-notarize-macbuild "$CJE_ROOT/$DROP_DIR/$BUILD_ID" eclipse-SDK-${BUILD_ID}-macosx-cocoa-x86_64.dmg |
| fi |
| |
| # gather platform |
| TARGET_PRODUCTS_DIR=$ECLIPSE_BUILDER_DIR/platform/target/products |
| if [ -d $TARGET_PRODUCTS_DIR ]; then |
| pushd $TARGET_PRODUCTS_DIR |
| cp org.eclipse.platform.ide-linux.gtk.ppc64le.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-$BUILD_ID-linux-gtk-ppc64le.tar.gz |
| cp org.eclipse.platform.ide-linux.gtk.x86_64.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-$BUILD_ID-linux-gtk-x86_64.tar.gz |
| cp org.eclipse.platform.ide-macosx.cocoa.x86_64.tar.gz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-$BUILD_ID-macosx-cocoa-x86_64.tar.gz |
| cp org.eclipse.platform.ide-macosx.cocoa.x86_64.dmg $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-$BUILD_ID-macosx-cocoa-x86_64.dmg |
| cp org.eclipse.platform.ide-win32.win32.x86_64.zip $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-$BUILD_ID-win32-x86_64.zip |
| popd |
| fn-notarize-macbuild "$CJE_ROOT/$DROP_DIR/$BUILD_ID" eclipse-platform-${BUILD_ID}-macosx-cocoa-x86_64.dmg |
| fi |
| |
| # gather platform sources |
| TARBALL_DIR=$CJE_ROOT/$AGG_DIR/eclipse-platform-sources/target/ |
| if [ -d $TARBALL_DIR ]; then |
| pushd $TARBALL_DIR |
| cp eclipse-platform-sources-*.tar.xz $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-platform-sources-$BUILD_ID.tar.xz |
| popd |
| fi |
| |
| # gather swt zips |
| SWT_BUNDLES_DIR=$CJE_ROOT/$AGG_DIR/eclipse.platform.swt.binaries/bundles |
| if [ -d $SWT_BUNDLES_DIR ]; then |
| pushd $SWT_BUNDLES_DIR |
| cp */target/*.zip $CJE_ROOT/$DROP_DIR/$BUILD_ID |
| popd |
| fi |
| |
| # gather test zips |
| TEST_ZIP_DIR=$ECLIPSE_BUILDER_DIR/eclipse-junit-tests/target |
| if [ -d $TEST_ZIP_DIR ]; then |
| pushd $TEST_ZIP_DIR |
| cp eclipse-junit-tests-bundle.zip $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-Automated-Tests-$BUILD_ID.zip |
| popd |
| fi |
| |
| # gather test framework |
| TEST_FRAMEWORK_DIR=$TEST_ZIP_DIR/eclipse-test-framework |
| if [ -d $TEST_FRAMEWORK_DIR ]; then |
| pushd $TEST_FRAMEWORK_DIR |
| zip -r $CJE_ROOT/$DROP_DIR/$BUILD_ID/eclipse-test-framework-$BUILD_ID.zip * |
| popd |
| fi |
| |
| # slice repos |
| ANT_SCRIPT=$ECLIPSE_BUILDER_DIR/repos/buildAll.xml |
| if [ -d $PLATFORM_REPO_DIR ]; then |
| pushd $PLATFORM_REPO_DIR |
| java -jar $LAUNCHER_JAR \ |
| -application org.eclipse.ant.core.antRunner \ |
| -buildfile $ANT_SCRIPT \ |
| -data $CJE_ROOT/$TMP_DIR/workspace-buildrepos \ |
| -Declipse.build.configs=$ECLIPSE_BUILDER_DIR \ |
| -DbuildId=$BUILD_ID \ |
| -DbuildLabel=$BUILD_ID \ |
| -DbuildRepo=$PLATFORM_REPO_DIR \ |
| -DbuildDirectory=$CJE_ROOT/$DROP_DIR/$BUILD_ID \ |
| -DpostingDirectory=$CJE_ROOT/$DROP_DIR \ |
| -DequinoxPostingDirectory=$CJE_ROOT/$EQUINOX_DROP_DIR \ |
| -Djava.io.tmpdir=$CJE_ROOT/$TMP_DIR \ |
| -v |
| popd |
| fi |
| fi |
| |
| # gather ecj jars |
| ECJ_JAR_DIR=$CJE_ROOT/$AGG_DIR/eclipse.jdt.core/org.eclipse.jdt.core/target |
| if [ -d $ECJ_JAR_DIR ]; then |
| pushd $ECJ_JAR_DIR |
| cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler.jar $CJE_ROOT/$DROP_DIR/$BUILD_ID/ecj-$BUILD_ID.jar |
| cp org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler-src.jar $CJE_ROOT/$DROP_DIR/$BUILD_ID/ecjsrc-$BUILD_ID.jar |
| popd |
| fi |
| |
| # gather buildnotes |
| if [ -d $CJE_ROOT/$AGG_DIR ]; then |
| pushd $CJE_ROOT/$AGG_DIR |
| buildnotesDir=$CJE_ROOT/$DROP_DIR/$BUILD_ID/buildnotes |
| mkdir -p $buildnotesDir |
| find . -name buildnotes_*.html -exec rsync '{}' $buildnotesDir \; |
| popd |
| fi |
| |
| # gather artifactcomparisons |
| if [ -d $CJE_ROOT/$AGG_DIR ]; then |
| pushd $CJE_ROOT/$AGG_DIR |
| comparatorlogsDir=$CJE_ROOT/$DROP_DIR/$BUILD_ID/buildlogs/comparatorlogs |
| mkdir -p $comparatorlogsDir |
| find . -regex .*target/artifactcomparison -type d -exec zip -r $comparatorlogsDir/artifactcomparisons.zip '{}' \; |
| popd |
| fi |
| |
| # verify comparatorlogs |
| # |
| # Note: copy mb220_buildSdkPatch.sh.log as mb060_run-maven-build_output.txt for now to avoid changing eclipse_compare.xml |
| # To-do: modify eclipse_compare.xml to use mb220_buildSdkPatch.sh.log after CJE migration |
| cp $CJE_ROOT/buildlogs/mb220_buildSdkPatch.sh.log $CJE_ROOT/$DROP_DIR/$BUILD_ID/buildlogs/mb060_run-maven-build_output.txt |
| # |
| pushd $CJE_ROOT/$DROP_DIR/$BUILD_ID |
| ANT_SCRIPT=$ECLIPSE_BUILDER_DIR/eclipse/buildScripts/eclipse_compare.xml |
| java -jar $LAUNCHER_JAR \ |
| -application org.eclipse.ant.core.antRunner \ |
| -buildfile $ANT_SCRIPT \ |
| -data $CJE_ROOT/$TMP_DIR/workspace-comparatorLogs \ |
| -DEBuilderDir=$ECLIPSE_BUILDER_DIR \ |
| -DbuildDirectory=$CJE_ROOT/$DROP_DIR/$BUILD_ID \ |
| -DbuildId=$BUILD_ID \ |
| -DbuildLabel=$BUILD_ID \ |
| -Djava.io.tmpdir=$CJE_ROOT/$TMP_DIR \ |
| -v \ |
| compare |
| popd |
| |
| # gather compilelogs |
| if [ -d $CJE_ROOT/$AGG_DIR ]; then |
| pushd $CJE_ROOT/$AGG_DIR |
| compilelogsDir=$CJE_ROOT/$DROP_DIR/$BUILD_ID/compilelogs/plugins |
| for log in $( find $CJE_ROOT/$AGG_DIR -name "compilelogs" -type d ); do |
| targetDir=$( dirname $log ) |
| if [ ! -r $targetDir/MANIFEST.MF ]; then |
| echo "** Failed to process $log in $targetDir. Likely compile error. Will backup to source MANIFEST.MF in directory containing target." |
| targetDir=$( dirname $targetDir ) |
| if [ ! -r $targetDir/META-INF/MANIFEST.MF ]; then |
| echo "**Failed to process $log in $targetDir." |
| else |
| bundleId=$( grep Bundle-SymbolicName $targetDir/META-INF/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) |
| bundleVersion=$( grep Bundle-Version $targetDir/META-INF/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) |
| mkdir -p $compilelogsDir/${bundleId}_${bundleVersion} |
| rsync -vr $log/ $compilelogsDir/${bundleId}_${bundleVersion}/ |
| fi |
| else |
| bundleId=$( grep Bundle-SymbolicName $targetDir/MANIFEST.MF | cut -f2 -d" " | cut -f1 -d\; | tr -d '\f\r\n\t' ) |
| bundleVersion=$( grep Bundle-Version $targetDir/MANIFEST.MF | cut -f2 -d" " | tr -d '\f\r\n\t' ) |
| mkdir -p $compilelogsDir/${bundleId}_${bundleVersion} |
| rsync -vr $log/ $compilelogsDir/${bundleId}_${bundleVersion}/ |
| fi |
| done |
| popd |
| fi |
| |
| # verify compilelog |
| pushd $CJE_ROOT/$DROP_DIR/$BUILD_ID |
| ANT_SCRIPT=$ECLIPSE_BUILDER_DIR/eclipse/helper.xml |
| java -jar $LAUNCHER_JAR \ |
| -application org.eclipse.ant.core.antRunner \ |
| -buildfile $ANT_SCRIPT \ |
| -data $CJE_ROOT/$TMP_DIR/workspace-verifyCompile \ |
| -DEBuilderDir=$ECLIPSE_BUILDER_DIR \ |
| -DbuildDirectory=$CJE_ROOT/$DROP_DIR/$BUILD_ID \ |
| -DbuildId=$BUILD_ID \ |
| -DbuildLabel=$BUILD_ID \ |
| -DpostingDirectory=$CJE_ROOT/$DROP_DIR/$BUILD_ID \ |
| -Djava.io.tmpdir=$CJE_ROOT/$TMP_DIR \ |
| -v \ |
| verifyCompile |
| popd |
| |
| # publish Eclipse |
| pushd $CJE_ROOT |
| ANT_SCRIPT=$ECLIPSE_BUILDER_DIR/eclipse/helper.xml |
| java -jar $LAUNCHER_JAR \ |
| -application org.eclipse.ant.core.antRunner \ |
| -buildfile $ANT_SCRIPT \ |
| -data $CJE_ROOT/$TMP_DIR/workspace-publish \ |
| -DAGGR_DIR=$CJE_ROOT/$AGG_DIR \ |
| -DEBuilderDir=$ECLIPSE_BUILDER_DIR \ |
| -DbuildDirectory=$CJE_ROOT/$DROP_DIR/$BUILD_ID \ |
| -DbuildId=$BUILD_ID \ |
| -DbuildLabel=$BUILD_ID \ |
| -DbuildDir=$BUILD_ID \ |
| -DbuildRepo=$PLATFORM_REPO_DIR \ |
| -DbuildType=$BUILD_TYPE \ |
| -DpostingDirectory=$CJE_ROOT/$DROP_DIR \ |
| -DequinoxPostingDirectory=$BUILD_ROOT/$EQUINOX_DROP_DIR \ |
| -DpublishingContent=$ECLIPSE_BUILDER_DIR/eclipse/publishingFiles \ |
| -DdropTemplateFileName=$ECLIPSE_BUILDER_DIR/eclipse/publishingFiles/templateFiles/index.template_$PATCH_OR_BRANCH_LABEL.php \ |
| -DindexFileName=index.php \ |
| -DeclipseStream=$STREAM \ |
| -Dbase.builder=$CJE_ROOT/$BASEBUILDER_DIR \ |
| -Djava.io.tmpdir=$CJE_ROOT/$TMP_DIR \ |
| -v \ |
| publish |
| popd |