[AAE-13200] - Fix GH workflow e2e not affected when testing lib is modified (#8448)

* [AAE-13200] - Fix e2e not affected when testing lib is modified

* Fix workflow

* Fix workflow output vars
This commit is contained in:
Ardit Domi 2023-04-06 13:43:04 +01:00 committed by GitHub
parent 913a117723
commit 5ddd039832
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 53 additions and 14 deletions

View File

@ -38,6 +38,10 @@ inputs:
apa-proxy: # apa-proxy: #
description: "proxy host" description: "proxy host"
required: true required: true
deps:
description: "Library dependencies"
required: false
default: ""
runs: runs:
using: "composite" using: "composite"
@ -121,6 +125,7 @@ runs:
PROVIDER: "${{ inputs.e2e-test-provider }}" PROVIDER: "${{ inputs.e2e-test-provider }}"
AUTH_TYPE: "${{ inputs.e2e-test-auth }}" AUTH_TYPE: "${{ inputs.e2e-test-auth }}"
E2E_TEST_ID: "${{ inputs.e2e-test-id }}" E2E_TEST_ID: "${{ inputs.e2e-test-id }}"
DEPS: "${{ inputs.deps }}"
shell: bash shell: bash
run: | run: |
set -u; set -u;
@ -134,6 +139,7 @@ runs:
PROVIDER: "${{ inputs.e2e-test-provider }}" PROVIDER: "${{ inputs.e2e-test-provider }}"
AUTH_TYPE: "${{ inputs.e2e-test-auth }}" AUTH_TYPE: "${{ inputs.e2e-test-auth }}"
E2E_TEST_ID: "${{ inputs.e2e-test-id }}" E2E_TEST_ID: "${{ inputs.e2e-test-id }}"
DEPS: "${{ inputs.deps }}"
uses: nick-fields/retry@v2.8.2 uses: nick-fields/retry@v2.8.2
with: with:
@ -149,9 +155,9 @@ runs:
export DISPLAY=:99 export DISPLAY=:99
chromedriver --url-base=/wd/hub & chromedriver --url-base=/wd/hub &
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 & # optional
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" "browser" || exit 1 bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" "$DEPS" "browser" || exit 1
else else
bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" || exit 1 bash ./scripts/github/e2e/e2e.sh "$E2E_TEST_ID" "$DEPS" || exit 1
fi fi
- name: upload artifacts on gh - name: upload artifacts on gh

View File

@ -191,7 +191,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
fetch-depth: 0 # Fetch all history for all tags and branches fetch-depth: 0 # Fetch all history for all tags and branches
- uses: ./.github/actions/setup - uses: ./.github/actions/setup
- name: install - name: install
@ -302,42 +302,49 @@ jobs:
auth: "OAUTH" auth: "OAUTH"
check-cs-env: "true" check-cs-env: "true"
check-ps-env: "true" check-ps-env: "true"
deps: "testing"
- description: "Content: Components" - description: "Content: Components"
test-id: "content-services" test-id: "content-services"
folder: "content-services/components" folder: "content-services/components"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Content: Directives" - description: "Content: Directives"
test-id: "content-services" test-id: "content-services"
folder: "content-services/directives" folder: "content-services/directives"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Content: Document List" - description: "Content: Document List"
test-id: "content-services" test-id: "content-services"
folder: "content-services/document-list" folder: "content-services/document-list"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Content: Metadata" - description: "Content: Metadata"
test-id: "content-services" test-id: "content-services"
folder: "content-services/metadata" folder: "content-services/metadata"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Content: Upload and Versioning" - description: "Content: Upload and Versioning"
test-id: "content-services" test-id: "content-services"
folder: "content-services/upload" folder: "content-services/upload"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Search" - description: "Search"
test-id: "content-services" test-id: "content-services"
folder: "search" folder: "search"
provider: "ECM" provider: "ECM"
auth: "BASIC" auth: "BASIC"
check-cs-env: "true" check-cs-env: "true"
deps: "testing"
- description: "Process: Form" - description: "Process: Form"
test-id: "process-services" test-id: "process-services"
folder: "process-services/form" folder: "process-services/form"
@ -345,6 +352,7 @@ jobs:
auth: "OAUTH" auth: "OAUTH"
check-ps-env: "true" check-ps-env: "true"
check-external-cs-env: "true" check-external-cs-env: "true"
deps: "testing"
- description: "Process: Process" - description: "Process: Process"
test-id: "process-services" test-id: "process-services"
folder: "process-services/process" folder: "process-services/process"
@ -352,6 +360,7 @@ jobs:
auth: "OAUTH" auth: "OAUTH"
check-ps-env: "true" check-ps-env: "true"
check-external-cs-env: "true" check-external-cs-env: "true"
deps: "testing"
- description: "Process: Tasks" - description: "Process: Tasks"
test-id: "process-services" test-id: "process-services"
folder: "process-services/tasks" folder: "process-services/tasks"
@ -359,6 +368,7 @@ jobs:
auth: "OAUTH" auth: "OAUTH"
check-ps-env: "true" check-ps-env: "true"
check-external-cs-env: "true" check-external-cs-env: "true"
deps: "testing"
- description: "Process: Widget" - description: "Process: Widget"
test-id: "process-services" test-id: "process-services"
folder: "process-services/widgets" folder: "process-services/widgets"
@ -366,6 +376,7 @@ jobs:
auth: "OAUTH" auth: "OAUTH"
check-ps-env: "true" check-ps-env: "true"
check-external-cs-env: "true" check-external-cs-env: "true"
deps: "testing"
- description: "Process Cloud: Form" - description: "Process Cloud: Form"
test-id: "process-services-cloud" test-id: "process-services-cloud"
folder: "process-services-cloud/form-field" folder: "process-services-cloud/form-field"
@ -374,6 +385,7 @@ jobs:
apa-proxy: true apa-proxy: true
check-cs-env: "true" check-cs-env: "true"
check-ps-cloud-env: "true" check-ps-cloud-env: "true"
deps: "testing"
- description: "Process Cloud: People" - description: "Process Cloud: People"
test-id: "process-services-cloud" test-id: "process-services-cloud"
folder: "process-services-cloud/people" folder: "process-services-cloud/people"
@ -382,6 +394,7 @@ jobs:
apa-proxy: true apa-proxy: true
check-cs-env: "true" check-cs-env: "true"
check-ps-cloud-env: "true" check-ps-cloud-env: "true"
deps: "testing"
- description: "Process Cloud: Process" - description: "Process Cloud: Process"
test-id: "process-services-cloud" test-id: "process-services-cloud"
folder: "process-services-cloud/process" folder: "process-services-cloud/process"
@ -390,6 +403,7 @@ jobs:
apa-proxy: true apa-proxy: true
check-cs-env: "true" check-cs-env: "true"
check-ps-cloud-env: "true" check-ps-cloud-env: "true"
deps: "testing"
- description: "Process Cloud: Start Task" - description: "Process Cloud: Start Task"
test-id: "process-services-cloud" test-id: "process-services-cloud"
folder: "process-services-cloud/start-task" folder: "process-services-cloud/start-task"
@ -398,6 +412,7 @@ jobs:
apa-proxy: true apa-proxy: true
check-cs-env: "true" check-cs-env: "true"
check-ps-cloud-env: "true" check-ps-cloud-env: "true"
deps: "testing"
- description: "Process Cloud: Tasks List" - description: "Process Cloud: Tasks List"
test-id: "process-services-cloud" test-id: "process-services-cloud"
folder: "process-services-cloud/task-list" folder: "process-services-cloud/task-list"
@ -406,6 +421,7 @@ jobs:
apa-proxy: true apa-proxy: true
check-cs-env: "true" check-cs-env: "true"
check-ps-cloud-env: "true" check-ps-cloud-env: "true"
deps: "testing"
steps: steps:
- name: Checkout repository - name: Checkout repository
@ -431,6 +447,7 @@ jobs:
check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }} check-ps-cloud-env: ${{ matrix.e2e-test.check-ps-cloud-env }}
check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }} check-external-cs-env: ${{ matrix.e2e-test.check-external-cs-env }}
apa-proxy: ${{ matrix.e2e-test.apa-proxy }} apa-proxy: ${{ matrix.e2e-test.apa-proxy }}
deps: ${{ matrix.e2e-test.deps }}
finalize: finalize:
if: ${{ always() }} if: ${{ always() }}

View File

@ -2,6 +2,7 @@
set -e set -e
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
verifyLib=$1; verifyLib=$1;
deps=$2;
cd $DIR/../../ cd $DIR/../../
if [ "${GITHUB_EVENT_NAME}" == "schedule" ]; then if [ "${GITHUB_EVENT_NAME}" == "schedule" ]; then
@ -9,13 +10,27 @@ if [ "${GITHUB_EVENT_NAME}" == "schedule" ]; then
echo true echo true
exit 0 exit 0
fi fi
isAffected=false
AFFECTED_LIBS=$(npx nx print-affected --type=lib --select=projects ${NX_CALCULATION_FLAGS} --plain) AFFECTED_LIBS=$(npx nx print-affected --type=lib --select=projects ${NX_CALCULATION_FLAGS} --plain)
#echo "Verify if affected build contains $1" #echo "Verify if affected build contains $1"
#echo "Affected libs:$AFFECTED_LIBS" #echo "Affected libs:$AFFECTED_LIBS"
if [[ $AFFECTED_LIBS =~ $verifyLib ]]; then if [[ $AFFECTED_LIBS =~ $verifyLib ]]; then
#echo "Yep project:$verifyLib is affected carry on" #echo "Yep project:$verifyLib is affected carry on"
echo true isAffected=true
else
#echo "Nope project NOT affected save time"
echo false
fi; fi;
if [[ $isAffected == false ]]; then
# echo "Read the deps as array"
IFS=',' read -ra depsArray <<< "$deps"
#echo "Loop through the deps to check if they are affected"
for i in "${depsArray[@]}"
do
if [[ $AFFECTED_LIBS =~ $i ]]; then
isAffected=true;
break
fi;
done;
fi;
echo $isAffected;

View File

@ -7,21 +7,22 @@ cd $DIR/../../../
BASE_DIRECTORY=$(echo "$FOLDER" | cut -d "/" -f1) BASE_DIRECTORY=$(echo "$FOLDER" | cut -d "/" -f1)
verifyLib=$1; verifyLib=$1;
deps=$2;
REGEX="(repository|workflow)_dispatch" REGEX="(repository|workflow)_dispatch"
# set test-e2e params # set test-e2e params
if [ -n "$2" ]; then if [ -n "$3" ]; then
e2eParams="--$2" e2eParams="--$3"
else else
e2eParams="" e2eParams=""
fi fi
echo "Step1 - Verify if affected libs contains $verifyLib" echo "Step1 - Verify if affected libs contains $verifyLib or if deps $deps are affected"
AFFECTED_LIB=$(./scripts/github/affected-contains.sh $verifyLib ) AFFECTED_LIB=$(./scripts/github/affected-contains.sh $verifyLib $deps)
if [ ${AFFECTED_LIB} == true ]; then if [ ${AFFECTED_LIB} == true ]; then
echo "Step2 - $verifyLib affected... will execute e2e" echo "Step2 - $verifyLib OR deps $deps affected... will execute e2e"
if [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then if [ "${GITHUB_EVENT_NAME}" == "pull_request" ]; then
echo "Calculate affected e2e $BASE_HASH $HEAD_HASH" echo "Calculate affected e2e $BASE_HASH $HEAD_HASH"
@ -54,6 +55,6 @@ if [ ${AFFECTED_LIB} == true ]; then
fi; fi;
else else
echo "Step2 - Lib $verifyLib NOT affected. No need to run e2e" echo "Step2 - Lib $verifyLib OR deps $deps NOT affected. No need to run e2e"
exit 0 exit 0
fi fi