Skip to content

Commit

Permalink
Merge pull request #5 from madurangasiriwardena/jacoco
Browse files Browse the repository at this point in the history
Jacoco
  • Loading branch information
madurangasiriwardena authored Sep 10, 2024
2 parents 98c1175 + 1e519e7 commit ca1040a
Show file tree
Hide file tree
Showing 844 changed files with 60,083 additions and 12,596 deletions.
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/test_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: "✅ Testing Task"
about: Create a testing task to improve the quality of the product.
title: ''
labels: 'test'
assignees: ''

---

**Is your suggestion a test requirement/change or improvements of the test framework? Please describe.**
<!-- A clear and concise description of what the requirement is. Ex. I would like to have a regression test on [...] -->

**Describe the solution you would prefer**
<!-- A clear and concise description of the required test information or framework improvements.For the test requirement: test types, test scenarios, test cases, steps and validations criterias -->

### Optional Fields

**Additional context**
<!-- Add any other context or screenshots about the test automation request here. e.g User scenario guide, functional Requirement Specifications (FRS) Documents -->

**Related Issues:**
<!-- Any related issues from this/other repositories-->
371 changes: 371 additions & 0 deletions .github/scripts/pr-builder-7.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,371 @@
#!/bin/bash +x
OUTBOUND_AUTH_OIDC_REPO=identity-outbound-auth-oidc
OUTBOUND_AUTH_OIDC_REPO_CLONE_LINK=https://github.com/wso2-extensions/identity-outbound-auth-oidc.git
SCIM2_REPO=identity-inbound-provisioning-scim2
SCIM2_REPO_CLONE_LINK=https://github.com/wso2-extensions/identity-inbound-provisioning-scim2.git

echo ""
echo "=========================================================="
PR_LINK=${PR_LINK%/}
JDK_VERSION=${JDK_VERSION%/}
JAVA_8_HOME=${JAVA_8_HOME%/}
JAVA_11_HOME=${JAVA_11_HOME%/}
echo " PR_LINK: $PR_LINK"
echo " JAVA 8 Home: $JAVA_8_HOME"
echo " JAVA 11 Home: $JAVA_11_HOME"
echo " User Input: $JDK_VERSION"
echo "::warning::Build ran for PR $PR_LINK"

USER=$(echo $PR_LINK | awk -F'/' '{print $4}')
REPO=$(echo $PR_LINK | awk -F'/' '{print $5}')
PULL_NUMBER=$(echo $PR_LINK | awk -F'/' '{print $7}')

echo " USER: $USER"
echo " REPO: $REPO"
echo " PULL_NUMBER: $PULL_NUMBER"
echo "::set-output name=REPO_NAME::$REPO"
echo "=========================================================="
echo "Cloning product-is"
echo "=========================================================="

git clone https://github.com/wso2/product-is

if [ "$REPO" = "product-is" ]; then

echo ""
echo "PR is for the product-is itself. Start building with test..."
echo "=========================================================="
cd product-is
git checkout 7.x.x

echo ""
echo "Applying PR $PULL_NUMBER as a diff..."
echo "=========================================================="
wget -q --output-document=diff.diff $PR_LINK.diff
cat diff.diff
echo "=========================================================="
git apply diff.diff || {
echo 'Applying diff failed. Exiting...'
echo "::error::Applying diff failed."
exit 1
}

echo "Last 3 changes:"
COMMIT1=$(git log --oneline -1)
COMMIT2=$(git log --oneline -2 | tail -1)
COMMIT3=$(git log --oneline -3 | tail -1)
echo "$COMMIT1"
echo "$COMMIT2"
echo "$COMMIT3"

cat pom.xml
export JAVA_HOME=$JAVA_11_HOME
mvn clean install --batch-mode | tee mvn-build.log

PR_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')
PR_TEST_RESULT=$(sed -n -e '/\[INFO\] Results:/,/\[INFO\] Tests run:/ p' mvn-build.log)

PR_BUILD_FINAL_RESULT=$(
echo "==========================================================="
echo "product-is BUILD $PR_BUILD_STATUS"
echo "=========================================================="
echo ""
echo "$PR_TEST_RESULT"
)

PR_BUILD_RESULT_LOG_TEMP=$(echo "$PR_BUILD_FINAL_RESULT" | sed 's/$/%0A/')
PR_BUILD_RESULT_LOG=$(echo $PR_BUILD_RESULT_LOG_TEMP)
echo "::warning::$PR_BUILD_RESULT_LOG"

PR_BUILD_SUCCESS_COUNT=$(grep -o -i "\[INFO\] BUILD SUCCESS" mvn-build.log | wc -l)
if [ "$PR_BUILD_SUCCESS_COUNT" != "1" ]; then
echo "PR BUILD not successfull. Aborting."
echo "::error::PR BUILD not successfull. Check artifacts for logs."
exit 1
fi
else
echo ""
echo "PR is for the dependency repository $REPO."
echo ""
echo "Cloning $USER/$REPO"
echo "=========================================================="
git clone https://github.com/$USER/$REPO
echo ""
echo "Determining dependency version property key..."
echo "=========================================================="
wget https://raw.githubusercontent.com/wso2/product-is/master/.github/scripts/version_property_finder.py
VERSION_PROPERTY=$(python version_property_finder.py $REPO product-is 2>&1)
VERSION_PROPERTY_KEY=""
if [ "$VERSION_PROPERTY" != "invalid" ]; then
echo "Version property key for the $REPO is $VERSION_PROPERTY"
VERSION_PROPERTY_KEY=$VERSION_PROPERTY
else
echo ""
echo "=========================================================="
echo "$REPO is not yet supported! Exiting..."
echo "=========================================================="
echo ""
echo "::error::PR builder not supprted"
exit 1
fi

echo ""
echo "Property key found: $VERSION_PROPERTY_KEY"
cd $REPO
if [ "$REPO" = "carbon-kernel" ]; then
echo ""
echo "Checking out for 4.10.x branch..."
echo "=========================================================="
git checkout 4.10.x
elif [ "$REPO" = "carbon-deployment" ]; then
echo ""
echo "Checking out for 4.x.x branch in carbon-deployment..."
echo "=========================================================="
git checkout 4.x.x
elif [ "$REPO" = "carbon-analytics-common" ]; then
echo ""
echo "Checking out for 5.2.x branch in carbon-analytics-common..."
echo "=========================================================="
git checkout 5.2.x
elif [ "$REPO" = "carbon-identity-framework" ]; then
echo ""
echo "Checking out for 6.0.x branch in carbon-identity-framework..."
echo "=========================================================="
git checkout 6.0.x
elif [ "$REPO" = "identity-governance" ]; then
echo ""
echo "Checking out for 2.0.x branch in identity-governance..."
echo "=========================================================="
git checkout 2.0.x
fi
DEPENDENCY_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
echo "Dependency Version: $DEPENDENCY_VERSION"
echo ""
echo "Applying PR $PULL_NUMBER as a diff..."
echo "=========================================================="
wget -q --output-document=diff.diff $PR_LINK.diff
cat diff.diff
echo "=========================================================="
git apply diff.diff || {
echo 'Applying diff failed. Exiting...'
echo "::error::Applying diff failed."
exit 1
}

echo ""
echo "Building dependency repo $REPO..."
echo "=========================================================="

if [ "$JDK_VERSION" = "11" ]; then
export JAVA_HOME=$JAVA_11_HOME
else
export JAVA_HOME=$JAVA_8_HOME
fi

if [ "$REPO" = "carbon-kernel" ]; then
mvn clean install -Dmaven.test.skip=true --batch-mode | tee mvn-build.log
else
mvn clean install --batch-mode | tee mvn-build.log
fi

echo ""
echo "Dependency repo $REPO build complete."
echo "Built version: $DEPENDENCY_VERSION"
echo "=========================================================="
echo ""

REPO_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')
REPO_TEST_RESULT_1=$(sed -n -e '/Results :/,/Tests run:/ p' mvn-build.log)
REPO_TEST_RESULT_2=$(sed -n -e '/\[INFO\] Results:/,/\[INFO\] Tests run:/ p' mvn-build.log)

REPO_FINAL_RESULT=$(
echo "==========================================================="
echo "$REPO BUILD $REPO_BUILD_STATUS"
echo "=========================================================="
echo ""
echo "Built version: $DEPENDENCY_VERSION"
echo ""
echo "$REPO_TEST_RESULT_1"
echo ""
echo "$REPO_TEST_RESULT_2"
)

REPO_BUILD_RESULT_LOG_TEMP=$(echo "$REPO_FINAL_RESULT" | sed 's/$/%0A/')
REPO_BUILD_RESULT_LOG=$(echo $REPO_BUILD_RESULT_LOG_TEMP)
echo "::warning::$REPO_BUILD_RESULT_LOG"

if [ "$REPO_BUILD_STATUS" != "SUCCESS" ]; then
echo "$REPO BUILD not successfull. Aborting."
echo "::error::$REPO BUILD not successfull. Check artifacts for logs."
exit 1
fi
cd ..

OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY=""
OUTBOUND_AUTH_OIDC_DEPENDENCY_VERSION=""
if [ "$REPO" = "carbon-kernel" ]; then
echo ""
echo "Building Outbound Auth OIDC repo..."
echo "=========================================================="
git clone $OUTBOUND_AUTH_OIDC_REPO_CLONE_LINK
OUTBOUND_AUTH_OIDC_VERSION_PROPERTY=$(python version_property_finder.py $OUTBOUND_AUTH_OIDC_REPO product-is 2>&1)
if [ "$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY" != "invalid" ]; then
echo "Version property key for the $OUTBOUND_AUTH_OIDC_REPO is $OUTBOUND_AUTH_OIDC_VERSION_PROPERTY"
OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY=$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY
else
echo ""
echo "=========================================================="
echo "Unable to find the version property for $OUTBOUND_AUTH_OIDC_REPO..."
echo "=========================================================="
echo ""
echo "::error::Unable to find the version property for $OUTBOUND_AUTH_OIDC_REPO..."
exit 1
fi
cd $OUTBOUND_AUTH_OIDC_REPO
OUTBOUND_AUTH_OIDC_DEPENDENCY_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
echo "Outbound Auth OIDC Dependency Version: $OUTBOUND_AUTH_OIDC_DEPENDENCY_VERSION"
echo ""

KERNEL_VERSION_PROPERTY_KEY=carbon.kernel.version
echo "Updating carbon-kernel dependency version in identity-outbound-auth-oidc repo..."
echo "=========================================================="
echo ""
sed -i "s/<$KERNEL_VERSION_PROPERTY_KEY>.*<\/$KERNEL_VERSION_PROPERTY_KEY>/<$KERNEL_VERSION_PROPERTY_KEY>$DEPENDENCY_VERSION<\/$KERNEL_VERSION_PROPERTY_KEY>/" pom.xml

echo ""
echo "Building repo $OUTBOUND_AUTH_OIDC_REPO..."
echo "=========================================================="


export JAVA_HOME=$JAVA_11_HOME
mvn clean install -Dmaven.test.skip=true --batch-mode | tee mvn-build.log

echo "Repo $OUTBOUND_AUTH_OIDC_REPO build complete."
SUB_REPO_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')

if [ "$SUB_REPO_BUILD_STATUS" != "SUCCESS" ]; then
echo "$OUTBOUND_AUTH_OIDC_REPO repo build not successfull. Aborting."
echo "::error::$OUTBOUND_AUTH_OIDC_REPO repo build not successfull. Aborting."
exit 1
fi

echo ""
echo "Built version: $OUTBOUND_AUTH_OIDC_DEPENDENCY_VERSION"
echo "=========================================================="
echo ""
cd ..
fi

SCIM2_VERSION_PROPERTY_KEY=""
SCIM2_DEPENDENCY_VERSION=""
if [ "$REPO" = "charon" ]; then
echo ""
echo "Building SCIM2 repo..."
echo "=========================================================="
git clone $SCIM2_REPO_CLONE_LINK
SCIM2_VERSION_PROPERTY=$(python version_property_finder.py $SCIM2_REPO product-is 2>&1)
if [ "$SCIM2_VERSION_PROPERTY" != "invalid" ]; then
echo "Version property key for the $SCIM2_REPO is $SCIM2_VERSION_PROPERTY"
SCIM2_VERSION_PROPERTY_KEY=$SCIM2_VERSION_PROPERTY
else
echo ""
echo "=========================================================="
echo "Unable to find the version property for $SCIM2_REPO..."
echo "=========================================================="
echo ""
echo "::error::Unable to find the version property for $SCIM2_REPO..."
exit 1
fi
cd $SCIM2_REPO
SCIM2_DEPENDENCY_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
echo "SCIM2 Dependency Version: $SCIM2_DEPENDENCY_VERSION"
echo ""

CHARON_VERSION_PROPERTY_KEY=charon.version
echo "Updating charon dependency version in $SCIM2_REPO repo..."
echo "=========================================================="
echo ""
sed -i "s/<$CHARON_VERSION_PROPERTY_KEY>.*<\/$CHARON_VERSION_PROPERTY_KEY>/<$CHARON_VERSION_PROPERTY_KEY>$DEPENDENCY_VERSION<\/$CHARON_VERSION_PROPERTY_KEY>/" pom.xml

echo ""
echo "Building $SCIM2_REPO repo..."
echo "=========================================================="

export JAVA_HOME=$JAVA_8_HOME
mvn clean install -Dmaven.test.skip=true --batch-mode | tee mvn-build.log

echo "Repo $SCIM2_REPO build complete."
SUB_REPO_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')

if [ "$SUB_REPO_BUILD_STATUS" != "SUCCESS" ]; then
echo "$SCIM2_REPO repo build not successfull. Aborting."
echo "::error::$SCIM2_REPO repo build not successfull. Aborting."
exit 1
fi

echo ""
echo "Built version: $SCIM2_DEPENDENCY_VERSION"
echo "=========================================================="
echo ""
cd ..
fi

cd product-is
git checkout 7.x.x

echo "Updating dependency version in product-is..."
echo "=========================================================="
echo ""
if [ "$REPO" = "charon" ]; then
echo "Updating SCIM2 version in product-is..."
echo "=========================================================="
echo ""
sed -i "s/<$SCIM2_VERSION_PROPERTY_KEY>.*<\/$SCIM2_VERSION_PROPERTY_KEY>/<$SCIM2_VERSION_PROPERTY_KEY>$SCIM2_DEPENDENCY_VERSION<\/$SCIM2_VERSION_PROPERTY_KEY>/" pom.xml
else
sed -i "s/<$VERSION_PROPERTY_KEY>.*<\/$VERSION_PROPERTY_KEY>/<$VERSION_PROPERTY_KEY>$DEPENDENCY_VERSION<\/$VERSION_PROPERTY_KEY>/" pom.xml
if [ "$REPO" = "carbon-kernel" ]; then
echo "Updating Outbound Auth OIDC version in product-is..."
echo "=========================================================="
echo ""
sed -i "s/<$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY>.*<\/$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY>/<$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY>$OUTBOUND_AUTH_OIDC_DEPENDENCY_VERSION<\/$OUTBOUND_AUTH_OIDC_VERSION_PROPERTY_KEY>/" pom.xml
echo "Updating caron-kernel version in carbon.product..."
echo "=========================================================="
echo ""
KERNEL_DEPENDENCY_VERSION=$(echo $DEPENDENCY_VERSION | sed -e "s/-/./g")
echo "Dependency version for carbon.product : $KERNEL_DEPENDENCY_VERSION"
sed -i "s/version=\"4.10.*\"/version=\"$KERNEL_DEPENDENCY_VERSION\"/g" modules/p2-profile-gen/carbon.product
fi
fi

export JAVA_HOME=$JAVA_11_HOME
cat pom.xml
mvn clean install --batch-mode | tee mvn-build.log

PR_BUILD_STATUS=$(cat mvn-build.log | grep "\[INFO\] BUILD" | grep -oE '[^ ]+$')
PR_TEST_RESULT=$(sed -n -e '/\[INFO\] Results:/,/\[INFO\] Tests run:/ p' mvn-build.log)

PR_BUILD_FINAL_RESULT=$(
echo "==========================================================="
echo "product-is BUILD $PR_BUILD_STATUS"
echo "=========================================================="
echo ""
echo "$PR_TEST_RESULT"
)

PR_BUILD_RESULT_LOG_TEMP=$(echo "$PR_BUILD_FINAL_RESULT" | sed 's/$/%0A/')
PR_BUILD_RESULT_LOG=$(echo $PR_BUILD_RESULT_LOG_TEMP)
echo "::warning::$PR_BUILD_RESULT_LOG"

PR_BUILD_SUCCESS_COUNT=$(grep -o -i "\[INFO\] BUILD SUCCESS" mvn-build.log | wc -l)
if [ "$PR_BUILD_SUCCESS_COUNT" != "1" ]; then
echo "PR BUILD not successfull. Aborting."
echo "::error::PR BUILD not successfull. Check artifacts for logs."
exit 1
fi
fi

echo ""
echo "=========================================================="
echo "Build completed"
echo "=========================================================="
echo ""
Loading

0 comments on commit ca1040a

Please sign in to comment.