| #!/bin/bash |
| ############################################################################### |
| # Copyright (c) 2018, 2020 Kichwa Coders Ltd 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 |
| ############################################################################### |
| |
| set -e |
| |
| ## |
| # Check the features are all branded and all content has proper licenses |
| ## |
| DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| ${DIR}/check_features.sh |
| ${DIR}/check_license.sh |
| |
| ## |
| # The next set of scripts automatically apply formatting and other rules |
| # to CDT. At the end of this, git repo is checked for no diffs. |
| ## |
| ${DIR}/do_all_code_cleanups.sh |
| |
| ## |
| # Check that none of the above caused any changes |
| ## |
| if test -z "$(git status -s)"; then |
| echo "Tree looks clean!" |
| else |
| echo "Tree is dirty - something needs to be cleaned up in your commit (more info below)" |
| echo "Result of git status" |
| git status |
| echo "Result of git diff" |
| git diff |
| echo "Tree is dirty - something needs to be cleaned up in your commit (see above for git status/diff). The 'something'" |
| echo "is likely a misformatted file, extra whitespace at end of line, or something similar. The diff above" |
| echo "shows what changes you need to apply to your patch to get it past the code cleanliness check." |
| exit 1 |
| fi |
| |
| ## |
| # Error out if there are dependencies that are not allowed in the dlls, exes, sos |
| ## |
| DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| echo "Checking dependencies of all .dll, .exe and .so files in CDT to make" |
| echo "sure no dependencies on unexpected or newer libraries are accidentally" |
| echo "introduced." |
| ${DIR}/check_dll_dependencies.sh |
| ${DIR}/check_glibc_dependencies.sh |
| |
| |
| ## |
| # Make sure all versions have been bumped appropriately compared to the baseline |
| ## |
| logfile=baseline-compare-and-replace.log |
| echo "Running 'mvn verify -P baseline-compare-and-replace' to make sure all versions" |
| echo "have been appropriately incremented. The check output is very verbose, so it is" |
| echo "redirected to ${logfile} which is archived as part of the build artifacts." |
| if ${MVN:-mvn} \ |
| clean verify -B -V --fail-at-end \ |
| -DskipDoc=true \ |
| -DskipTests=true \ |
| -P baseline-compare-and-replace >${logfile} 2>&1; then |
| echo "Maven check all versions have been bumped appropriately appears to have completed successfully" |
| else |
| bundles_only_qualifier_changed=$(grep "Only qualifier changed" ${logfile} | sed -e 's/^.*Only qualifier changed for .//' -e 's@/.*@@' | sort) |
| if [ -n "$bundles_only_qualifier_changed" ]; then |
| echo "The following bundles are missing a service segment version bump:" |
| for bundle in $bundles_only_qualifier_changed; do |
| echo " - $bundle" |
| done |
| echo "Please bump service segment by 100 if on master branch" |
| echo "The log of this build is part of the artifacts" |
| echo "See: https://wiki.eclipse.org/Version_Numbering#When_to_change_the_service_segment" |
| echo |
| fi |
| |
| bundles_same_version_different_content=$(grep "baseline and build artifacts have same version but different contents" ${logfile} | sed -e 's/^.* on project //' -e 's@: baseline.*@@' | sort) |
| if [ -n "$bundles_same_version_different_content" ]; then |
| echo "The following bundles have same version as baseline, but different contents:" |
| for bundle in $bundles_same_version_different_content; do |
| echo " - $bundle" |
| done |
| echo "This can happen for a variety of reasons:" |
| echo " - The comparison filters in the root pom.xml are not working" |
| echo " - Different versions of Java are being used to compile compared to the baseline" |
| echo " - A dependency has changed causing the generated classes to be different" |
| echo "The log of this build is part of the artifacts" |
| echo "Please bump service segment by 100 if on master branch" |
| echo "See: https://wiki.eclipse.org/Version_Numbering#When_to_change_the_service_segment" |
| echo |
| fi |
| |
| if [ -z "$bundles_only_qualifier_changed" ] && [ -z "$bundles_same_version_different_content" ]; then |
| echo "Maven 'check all versions have been bumped appropriately' failed! Please see the" |
| echo "log of the failed maven run which is available as part of the artifacts in a" |
| echo "file called baseline-compare-and-replace.log" |
| fi |
| exit 1 |
| fi |