diff --git a/.github/workflows/pr-e2e.yml b/.github/workflows/pr-e2e.yml index 80531781c1c..bf42571bd62 100644 --- a/.github/workflows/pr-e2e.yml +++ b/.github/workflows/pr-e2e.yml @@ -93,6 +93,42 @@ jobs: gh pr checkout ${{ needs.triage.outputs.pr_num }} git checkout ${{ needs.triage.outputs.commit_sha }} + - name: Run regex checks + id: regex-validation + continue-on-error: true + env: + COMMENT_BODY: ${{ github.event.comment.body }} + run: | + MESSAGE="$COMMENT_BODY" + REGEX='/run-e2e (.+)' + if [[ "$MESSAGE" =~ $REGEX ]] + then + export E2E_TEST_REGEX="$(echo ${BASH_REMATCH[1]} | head -1)" + fi + make e2e-regex-check + + - name: React to comment with failure + uses: dkershner6/reaction-action@v2 + if: steps.regex-validation.outcome != 'success' + with: + token: ${{ secrets.GITHUB_TOKEN }} + commentId: ${{ github.event.comment.id }} + reaction: "-1" + + - name: Set status failure + uses: LouisBrunner/checks-action@6b626ffbad7cc56fd58627f774b9067e6118af23 # v2 + if: steps.regex-validation.outcome != 'success' + with: + token: ${{ secrets.GITHUB_TOKEN }} + sha: ${{ needs.triage.outputs.commit_sha }} + name: ${{ env.E2E_CHECK_NAME }} + conclusion: failure + details_url: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}} + + - name: Exit on failure + if: steps.regex-validation.outcome != 'success' + run: exit 1 + - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index b999413fae3..8240f0a70a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -89,6 +89,7 @@ New deprecation(s): ### Other - TODO ([#XXX](https://github.com/kedacore/keda/issues/XXX)) +- **General**: Added Pre Regex check before building image in e2e test ([#5783](https://github.com/kedacore/keda/issues/5783)) ## v2.14.0 diff --git a/Makefile b/Makefile index 82a9e7c4ea9..edaedf85c90 100644 --- a/Makefile +++ b/Makefile @@ -98,6 +98,10 @@ scale-node-pool: az-login ## Scale nodepool. --resource-group $(TF_AZURE_RESOURCE_GROUP) \ --node-count $(NODE_POOL_SIZE) +.PHONY: e2e-regex-check +e2e-regex-check: + go run -tags e2e-regex ./tests/run-all.go regex-check + .PHONY: e2e-test e2e-test: get-cluster-context ## Run e2e tests against Azure cluster. TERMINFO=/etc/terminfo diff --git a/tests/run-all.go b/tests/run-all.go index bf9029c5ff4..76134d55e32 100644 --- a/tests/run-all.go +++ b/tests/run-all.go @@ -41,11 +41,25 @@ type TestResult struct { func main() { ctx := context.Background() + // + // Detect test cases + // e2eRegex := os.Getenv("E2E_TEST_REGEX") if e2eRegex == "" { e2eRegex = ".*_test.go" } + regularTestFiles := getRegularTestFiles(e2eRegex) + sequentialTestFiles := getSequentialTestFiles(e2eRegex) + if len(regularTestFiles) == 0 && len(sequentialTestFiles) == 0 { + fmt.Printf("No test has been executed, please review your regex: '%s'\n", e2eRegex) + os.Exit(1) + } + + if len(os.Args) > 1 && os.Args[1] == "regex-check" { + return + } + // // Install KEDA // @@ -57,17 +71,6 @@ func main() { os.Exit(1) } - // - // Detect test cases - // - regularTestFiles := getRegularTestFiles(e2eRegex) - sequentialTestFiles := getSequentialTestFiles(e2eRegex) - if len(regularTestFiles) == 0 && len(sequentialTestFiles) == 0 { - uninstallKeda(ctx) - fmt.Printf("No test has been executed, please review your regex: '%s'\n", e2eRegex) - os.Exit(1) - } - // // Execute regular tests //