From 1e3fed2dc6804e1517f37e971948c69e014480e5 Mon Sep 17 00:00:00 2001 From: Sayali Gaikawad Date: Fri, 24 May 2024 00:17:50 -0700 Subject: [PATCH] Refactor Signed-off-by: Sayali Gaikawad --- .github/workflows/gradle-check.yml | 46 ++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/.github/workflows/gradle-check.yml b/.github/workflows/gradle-check.yml index a4a98b60102a8..0af6d86b573d1 100644 --- a/.github/workflows/gradle-check.yml +++ b/.github/workflows/gradle-check.yml @@ -12,9 +12,24 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: + check-files: + runs-on: ubuntu-latest + outputs: + RUN_GRADLE_CHECK: ${{ steps.changed-files-specific.outputs.any_changed }} + steps: + - uses: actions/checkout@v3 + - name: Get changed files + id: changed-files-specific + uses: tj-actions/changed-files@v44 + with: + files_ignore: | + release-notes/*.md + .github/** + *.md gradle-check: - if: github.repository == 'opensearch-project/OpenSearch' + needs: check-files + if: github.repository == 'opensearch-project/OpenSearch' && needs.check-files.outputs.RUN_GRADLE_CHECK == 'true' permissions: contents: read # to fetch code (actions/checkout) pull-requests: write # to create or update comment (peter-evans/create-or-update-comment) @@ -48,7 +63,7 @@ jobs: TRIAGING.md - name: Setup environment variables (PR) - if: github.event_name == 'pull_request_target' && steps.changed-files-specific.outputs.any_changed == 'true' + if: github.event_name == 'pull_request_target' run: | echo "event_name=pull_request_target" >> $GITHUB_ENV echo "branch_name=$(jq --raw-output .pull_request.base.ref $GITHUB_EVENT_PATH)" >> $GITHUB_ENV @@ -77,7 +92,7 @@ jobs: ).data[0]; - name: Setup environment variables (Push) - if: github.event_name == 'push' && steps.changed-files-specific.outputs.any_changed == 'true' + if: github.event_name == 'push' run: | repo_url="https://github.com/opensearch-project/OpenSearch" ref_id=$(git rev-parse HEAD) @@ -94,7 +109,6 @@ jobs: echo "post_merge_action=true" >> $GITHUB_ENV - name: Checkout opensearch-build repo - if: steps.changed-files-specific.outputs.any_changed == 'true' uses: actions/checkout@v4 with: repository: opensearch-project/opensearch-build @@ -102,14 +116,13 @@ jobs: path: opensearch-build - name: Trigger jenkins workflow to run gradle check - if: steps.changed-files-specific.outputs.any_changed == 'true' run: | set -e set -o pipefail bash opensearch-build/scripts/gradle/gradle-check.sh ${{ secrets.JENKINS_GRADLE_CHECK_GENERIC_WEBHOOK_TOKEN }} | tee -a gradle-check.log - name: Setup Result Status - if: always() && steps.changed-files-specific.outputs.any_changed == 'true' + if: always() run: | WORKFLOW_URL=`cat gradle-check.log | grep 'WORKFLOW_URL' | awk '{print $2}'` RESULT=`cat gradle-check.log | grep 'Result:' | awk '{print $2}'` @@ -117,13 +130,13 @@ jobs: echo "result=$RESULT" >> $GITHUB_ENV - name: Upload Coverage Report - if: success() && steps.changed-files-specific.outputs.any_changed == 'true' + if: success() uses: codecov/codecov-action@v4 with: files: ./codeCoverage.xml - name: Create Comment Success - if: ${{ github.event_name == 'pull_request_target' && success() && env.result == 'SUCCESS' && steps.changed-files-specific.outputs.any_changed == 'true' }} + if: ${{ github.event_name == 'pull_request_target' && success() && env.result == 'SUCCESS' }} uses: peter-evans/create-or-update-comment@v4 with: issue-number: ${{ env.pr_number }} @@ -131,7 +144,7 @@ jobs: :white_check_mark: Gradle check result for ${{ env.pr_from_sha }}: [${{ env.result }}](${{ env.workflow_url }}) - name: Extract Test Failure - if: ${{ github.event_name == 'pull_request_target' && env.result != 'SUCCESS' && steps.changed-files-specific.outputs.any_changed == 'true' }} + if: ${{ github.event_name == 'pull_request_target' && env.result != 'SUCCESS' }} run: | TEST_FAILURES=`curl -s "${{ env.workflow_url }}/testReport/api/json?tree=suites\[cases\[status,className,name\]\]" | jq -r '.. | objects | select(.status=="FAILED",.status=="REGRESSION") | (.className + "." + .name)' | uniq -c | sort -n -r | head -n 10` if [[ "$TEST_FAILURES" != "" ]] @@ -146,7 +159,7 @@ jobs: fi - name: Create Comment Flaky - if: ${{ github.event_name == 'pull_request_target' && success() && env.result != 'SUCCESS' && steps.changed-files-specific.outputs.any_changed == 'true' }} + if: ${{ github.event_name == 'pull_request_target' && success() && env.result != 'SUCCESS' }} uses: peter-evans/create-or-update-comment@v4 with: issue-number: ${{ env.pr_number }} @@ -156,7 +169,7 @@ jobs: Please review all [flaky tests](https://github.com/opensearch-project/OpenSearch/blob/main/DEVELOPER_GUIDE.md#flaky-tests) that succeeded after retry and create an issue if one does not already exist to track the flaky failure. - name: Create Comment Failure - if: ${{ github.event_name == 'pull_request_target' && failure() && steps.changed-files-specific.outputs.any_changed == 'true' }} + if: ${{ github.event_name == 'pull_request_target' && failure() }} uses: peter-evans/create-or-update-comment@v4 with: issue-number: ${{ env.pr_number }} @@ -166,10 +179,19 @@ jobs: Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure [a flaky test](https://github.com/opensearch-project/OpenSearch/blob/main/DEVELOPER_GUIDE.md#flaky-tests) unrelated to your change? - name: Create Issue On Push Failure - if: ${{ github.event_name == 'push' && failure() && steps.changed-files-specific.outputs.any_changed == 'true' }} + if: ${{ github.event_name == 'push' && failure() }} uses: dblock/create-a-github-issue@v3 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: assignees: ${{ github.event.head_commit.author.username }}, ${{ github.triggering_actor }} filename: .github/ISSUE_TEMPLATE/failed_check.md + + check-result: + needs: [check-files, gradle-check] + if: always() + runs-on: ubuntu-latest + steps: + - name: Fail if gradle-check fails + if: ${{ needs.check-files.outputs.RUN_GRADLE_CHECK && needs.gradle-check.result == 'failure' }} + run: exit 1 \ No newline at end of file