From 1d5d045e7751f3f862a3422c69842b3cb2da39cb Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Mon, 4 Aug 2025 22:18:47 +0300 Subject: [PATCH 01/10] Add prettirer PR check Signed-off-by: Dmytro Nochevnov --- .github/workflows/pr-check.yml | 8 ++++++++ tests/e2e/package.json | 1 + 2 files changed, 9 insertions(+) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index f4ea819bded..fbe1a45c81d 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -50,6 +50,14 @@ jobs: with: node-version: '18' + - name: Check prettier rules + run: | + echo "Running prettier check..." + if ! npm run prettier:check; then + echo "::error::Prettier check failed! Run 'npm run prettier' to fix formatting issues." + exit 1 + fi + - name: Check compilation errors run: | npm ci diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 69c63a8bb22..51d75143773 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -6,6 +6,7 @@ "scripts": { "lint": "eslint --fix .", "prettier": "prettier --config .prettierrc.json . --write", + "prettier:check": "prettier --config .prettierrc.json . --check", "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .", "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js", "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test", From 6bcf876c87008d040bac60940e07f7d2a8bffee0 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Mon, 4 Aug 2025 22:52:39 +0300 Subject: [PATCH 02/10] Fix prettier formatting Signed-off-by: Dmytro Nochevnov --- tests/e2e/pageobjects/git-providers/OauthPage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/pageobjects/git-providers/OauthPage.ts b/tests/e2e/pageobjects/git-providers/OauthPage.ts index c8d6664d96f..03d5fa512f6 100644 --- a/tests/e2e/pageobjects/git-providers/OauthPage.ts +++ b/tests/e2e/pageobjects/git-providers/OauthPage.ts @@ -50,7 +50,7 @@ export class OauthPage { OauthPage.DENY_ACCESS_BUTTON = By.xpath('//span[text()="Deny"]'); } break; - case GitProviderType.BITBUCKET_CLOUD_OAUTH2: + case GitProviderType.BITBUCKET_CLOUD_OAUTH2: { OauthPage.LOGIN_FORM = By.css('[data-testid="username"]'); OauthPage.PASSWORD_FORM = By.id('password'); From 6fc8dbac5e30b212d8e192d5c1bde66eddd9f302 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Mon, 4 Aug 2025 23:46:39 +0300 Subject: [PATCH 03/10] Print debug information Signed-off-by: Dmytro Nochevnov --- tests/e2e/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 51d75143773..6512c42bd4a 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -6,7 +6,7 @@ "scripts": { "lint": "eslint --fix .", "prettier": "prettier --config .prettierrc.json . --write", - "prettier:check": "prettier --config .prettierrc.json . --check", + "prettier:check": "prettier --config .prettierrc.json . --check --log-level debug", "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .", "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js", "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test", From 6aef4870da9f54be04f44912aa00ed46aab7c74b Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 00:20:40 +0300 Subject: [PATCH 04/10] Fic prettier check error Signed-off-by: Dmytro Nochevnov --- .github/workflows/pr-check.yml | 28 ++++++++++++++++------------ tests/e2e/package.json | 2 +- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index fbe1a45c81d..f52648a7937 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -22,8 +22,8 @@ on: - main - 7.**.x paths: - - 'tests/e2e/**' - - '.github/workflows/pr-check.yml' + - "tests/e2e/**" + - ".github/workflows/pr-check.yml" env: LOCAL_TEST_DIR: /tmp @@ -31,8 +31,8 @@ jobs: pr-check: runs-on: ubuntu-22.04 defaults: - run: - working-directory: tests/e2e + run: + working-directory: tests/e2e steps: - name: Git checkout uses: actions/checkout@v2 @@ -48,13 +48,17 @@ jobs: - name: Configuring nodejs 18.x version uses: actions/setup-node@v3 with: - node-version: '18' + node-version: "18" - name: Check prettier rules run: | echo "Running prettier check..." - if ! npm run prettier:check; then - echo "::error::Prettier check failed! Run 'npm run prettier' to fix formatting issues." + cd $GITHUB_WORKSPACE/tests/e2e + # Make sure dependencies are installed + npm ci + # Use the prettier-check script from package.json + if ! npm run prettier-check; then + echo "::error::Prettier check failed! Run 'cd tests/e2e && npm run prettier' to fix formatting issues." exit 1 fi @@ -124,9 +128,9 @@ jobs: - name: Build E2E test docker image run: | - # for saving disk space we can remove the assembly folder because it is legacy code - rm -rf assembly - docker build -t quay.io/eclipse/che-e2e:"${{ env.pr_number }}" -f build/dockerfiles/Dockerfile . + # for saving disk space we can remove the assembly folder because it is legacy code + rm -rf assembly + docker build -t quay.io/eclipse/che-e2e:"${{ env.pr_number }}" -f build/dockerfiles/Dockerfile . - name: Clean up to save disk space run: | @@ -142,13 +146,13 @@ jobs: sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel sudo apt-get autoremove -y sudo apt-get autoclean - + # Remove large directories sudo rm -rf /usr/local/lib/android sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf /opt/hostedtoolcache/CodeQL - + # we have already ran API test, built test image and do not need e2e test-code ls -la ${GITHUB_WORKSPACE} rm -rf ${GITHUB_WORKSPACE}/che diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 6512c42bd4a..32a21251251 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -6,7 +6,7 @@ "scripts": { "lint": "eslint --fix .", "prettier": "prettier --config .prettierrc.json . --write", - "prettier:check": "prettier --config .prettierrc.json . --check --log-level debug", + "prettier-check": "prettier --config .prettierrc.json . --check --log-level debug", "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .", "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js", "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test", From 3adcee0d28eb2b409767baebd01ca044c9c19f65 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 00:59:54 +0300 Subject: [PATCH 05/10] Print list of files which doesn't comply pretter rules Signed-off-by: Dmytro Nochevnov --- .github/workflows/pr-check.yml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index f52648a7937..802fd32a5d3 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -54,13 +54,22 @@ jobs: run: | echo "Running prettier check..." cd $GITHUB_WORKSPACE/tests/e2e - # Make sure dependencies are installed npm ci - # Use the prettier-check script from package.json - if ! npm run prettier-check; then - echo "::error::Prettier check failed! Run 'cd tests/e2e && npm run prettier' to fix formatting issues." - exit 1 + # Get list of files with formatting issues (use list-different for just file names) + npx prettier --list-different . > /tmp/prettier-files.txt 2>/dev/null || true + # Display warnings for files with formatting issues + if [ -s /tmp/prettier-files.txt ]; then + echo "::warning::Prettier formatting issues found in the following files:" + # Display each file with [warn] prefix + while read -r file; do + echo "::warning::[warn] $file" + done < /tmp/prettier-files.txt + echo "Run 'cd tests/e2e && npm run prettier' to fix formatting issues." + else + echo "No prettier formatting issues found." fi + # Clean up temporary file + rm -f /tmp/prettier-files.txt - name: Check compilation errors run: | From 9d00d9a8ad0505bb8114a23f62b8ad453ad2d271 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 01:11:08 +0300 Subject: [PATCH 06/10] Test prettier formatting warnings Signed-off-by: Dmytro Nochevnov --- tests/e2e/pageobjects/git-providers/OauthPage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/pageobjects/git-providers/OauthPage.ts b/tests/e2e/pageobjects/git-providers/OauthPage.ts index 03d5fa512f6..09a3a85c784 100644 --- a/tests/e2e/pageobjects/git-providers/OauthPage.ts +++ b/tests/e2e/pageobjects/git-providers/OauthPage.ts @@ -41,7 +41,7 @@ export class OauthPage { OauthPage.DENY_ACCESS_BUTTON = By.id('deny'); } break; - case GitProviderType.BITBUCKET_SERVER_OAUTH2: + case GitProviderType.BITBUCKET_SERVER_OAUTH2: { OauthPage.LOGIN_FORM = By.id('j_username'); OauthPage.PASSWORD_FORM = By.id('j_password'); From 434d55c1e6bee928cc5051b788232afddbb3ffb1 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 01:22:41 +0300 Subject: [PATCH 07/10] Fail pr check in case of warnings Signed-off-by: Dmytro Nochevnov --- .github/workflows/pr-check.yml | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 802fd32a5d3..2bb4208c566 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -50,36 +50,42 @@ jobs: with: node-version: "18" + - name: Check compilation errors + run: | + npm ci + npm run tsc + + - name: Check lint errors + run: | + npm run lint + - name: Check prettier rules run: | echo "Running prettier check..." - cd $GITHUB_WORKSPACE/tests/e2e - npm ci # Get list of files with formatting issues (use list-different for just file names) npx prettier --list-different . > /tmp/prettier-files.txt 2>/dev/null || true + # Display warnings for files with formatting issues if [ -s /tmp/prettier-files.txt ]; then echo "::warning::Prettier formatting issues found in the following files:" + # Display each file with [warn] prefix while read -r file; do echo "::warning::[warn] $file" done < /tmp/prettier-files.txt echo "Run 'cd tests/e2e && npm run prettier' to fix formatting issues." + + # Fail the build + echo "::error::Prettier check failed! Please fix the formatting issues." + rm -f /tmp/prettier-files.txt + exit 1 else echo "No prettier formatting issues found." fi + # Clean up temporary file rm -f /tmp/prettier-files.txt - - name: Check compilation errors - run: | - npm ci - npm run tsc - - - name: Check lint errors - run: | - npm run lint - - name: Start minikube id: run-minikube uses: che-incubator/setup-minikube-action@next From dfdba7dcf2e53bb43bf29b9d3dbd2a58db98a8fa Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 01:36:35 +0300 Subject: [PATCH 08/10] Fail pr check in case of warnings Signed-off-by: Dmytro Nochevnov --- .github/workflows/pr-check.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 2bb4208c566..f199f3c4299 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -50,17 +50,9 @@ jobs: with: node-version: "18" - - name: Check compilation errors - run: | - npm ci - npm run tsc - - - name: Check lint errors - run: | - npm run lint - - name: Check prettier rules run: | + npm ci echo "Running prettier check..." # Get list of files with formatting issues (use list-different for just file names) npx prettier --list-different . > /tmp/prettier-files.txt 2>/dev/null || true @@ -83,8 +75,14 @@ jobs: echo "No prettier formatting issues found." fi - # Clean up temporary file - rm -f /tmp/prettier-files.txt + - name: Check compilation errors + run: | + npm run tsc + + - name: Check lint errors + run: | + npm run lint + - name: Start minikube id: run-minikube From e415490637eaac4b9bb899033077484e5a4dcb50 Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 01:48:06 +0300 Subject: [PATCH 09/10] Fix prettier error Signed-off-by: Dmytro Nochevnov --- tests/e2e/pageobjects/git-providers/OauthPage.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/e2e/pageobjects/git-providers/OauthPage.ts b/tests/e2e/pageobjects/git-providers/OauthPage.ts index 09a3a85c784..03d5fa512f6 100644 --- a/tests/e2e/pageobjects/git-providers/OauthPage.ts +++ b/tests/e2e/pageobjects/git-providers/OauthPage.ts @@ -41,7 +41,7 @@ export class OauthPage { OauthPage.DENY_ACCESS_BUTTON = By.id('deny'); } break; - case GitProviderType.BITBUCKET_SERVER_OAUTH2: + case GitProviderType.BITBUCKET_SERVER_OAUTH2: { OauthPage.LOGIN_FORM = By.id('j_username'); OauthPage.PASSWORD_FORM = By.id('j_password'); From 0e753ba887ce32b98692d6d6b45e36966a1664ad Mon Sep 17 00:00:00 2001 From: Dmytro Nochevnov Date: Tue, 5 Aug 2025 11:27:11 +0300 Subject: [PATCH 10/10] Remove prettier-check command from package.json Signed-off-by: Dmytro Nochevnov --- tests/e2e/package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 32a21251251..69c63a8bb22 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -6,7 +6,6 @@ "scripts": { "lint": "eslint --fix .", "prettier": "prettier --config .prettierrc.json . --write", - "prettier-check": "prettier --config .prettierrc.json . --check --log-level debug", "tsc": "rm -rf ./dist && ./configs/sh-scripts/generateIndex.sh && tsc -p .", "test": "./configs/sh-scripts/initDefaultValues.sh npm run lint && npm run tsc && export USERSTORY=$USERSTORY && mocha --config dist/configs/mocharc.js", "driver-less-test": "export TS_USE_WEB_DRIVER_FOR_TEST=false && npm run test",