Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
Signed-off-by: Sayali Gaikawad <[email protected]>
  • Loading branch information
gaiksaya committed May 2, 2024
1 parent c455bca commit fad98bd
Showing 1 changed file with 112 additions and 120 deletions.
232 changes: 112 additions & 120 deletions .github/workflows/gradle-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,9 @@ permissions:
contents: read # to fetch code (actions/checkout)

jobs:
check-files:
if: github.repository == 'gaiksaya/OpenSearch'
runs-on: ubuntu-latest
outputs:
RUN_GRADLE_CHECK: ${{steps.changed-files-specific.outputs.any_changed}}
steps:
- uses: actions/checkout@v3
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v44
with:
files_ignore: |
release-notes/**
.github/**
**.md
- run: echo "Value is :${{steps.changed-files-specific.outputs.any_changed}}"

gradle-check:
needs: check-files
if: github.repository == 'gaiksaya/OpenSearch' && needs.check-files.outputs.RUN_GRADLE_CHECK == 'true'
if: github.repository == 'gaiksaya/OpenSearch'
permissions:
contents: read # to fetch code (actions/checkout)
pull-requests: write # to create or update comment (peter-evans/create-or-update-comment)
Expand All @@ -43,105 +26,114 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}

- run: echo ${{github.repository}} ${{needs.check-files.outputs.RUN_GRADLE_CHECK}}

# - name: Setup environment variables (PR)
# if: github.event_name == 'pull_request_target'
# run: |
# echo "pr_from_sha=$(jq --raw-output .pull_request.head.sha $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
# echo "pr_from_clone_url=$(jq --raw-output .pull_request.head.repo.clone_url $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
# echo "pr_to_clone_url=$(jq --raw-output .pull_request.base.repo.clone_url $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
# echo "pr_title=$(jq --raw-output .pull_request.title $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
# echo "pr_number=$(jq --raw-output .pull_request.number $GITHUB_EVENT_PATH)" >> $GITHUB_ENV

# - name: Setup environment variables (Push)
# if: github.event_name == 'push'
# run: |
# repo_url="https://github.com/opensearch-project/OpenSearch"
# ref_id=$(git rev-parse HEAD)
# branch_name=$(git rev-parse --abbrev-ref HEAD)
# echo "branch_name=$branch_name" >> $GITHUB_ENV
# echo "pr_from_sha=$ref_id" >> $GITHUB_ENV
# echo "pr_from_clone_url=$repo_url" >> $GITHUB_ENV
# echo "pr_to_clone_url=$repo_url" >> $GITHUB_ENV
# echo "pr_title=Push trigger $branch_name $ref_id $repo_url" >> $GITHUB_ENV
# echo "pr_number=Null" >> $GITHUB_ENV

# - name: Checkout opensearch-build repo
# uses: actions/checkout@v4
# with:
# repository: opensearch-project/opensearch-build
# ref: main
# path: opensearch-build

# - name: Trigger jenkins workflow to run gradle check
# 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()
# run: |
# WORKFLOW_URL=`cat gradle-check.log | grep 'WORKFLOW_URL' | awk '{print $2}'`
# RESULT=`cat gradle-check.log | grep 'Result:' | awk '{print $2}'`
# echo "workflow_url=$WORKFLOW_URL" >> $GITHUB_ENV
# echo "result=$RESULT" >> $GITHUB_ENV

# - name: Upload Coverage Report
# 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' }}
# uses: peter-evans/create-or-update-comment@v4
# with:
# issue-number: ${{ env.pr_number }}
# body: |
# :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' }}
# 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" != "" ]]
# then
# echo "test_failures<<EOF" >> $GITHUB_ENV
# echo "" >> $GITHUB_ENV
# echo "* **TEST FAILURES:**" >> $GITHUB_ENV
# echo '```' >> $GITHUB_ENV
# echo "$TEST_FAILURES" >> $GITHUB_ENV
# echo '```' >> $GITHUB_ENV
# echo "EOF" >> $GITHUB_ENV
# fi

# - name: Create Comment Flaky
# 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 }}
# body: |
# :grey_exclamation: Gradle check result for ${{ env.pr_from_sha }}: [${{ env.result }}](${{ env.workflow_url }}) ${{ env.test_failures }}

# 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() }}
# uses: peter-evans/create-or-update-comment@v4
# with:
# issue-number: ${{ env.pr_number }}
# body: |
# :x: Gradle check result for ${{ env.pr_from_sha }}: [${{ env.result }}](${{ env.workflow_url }})

# 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() }}
# 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
- name: Get changed files in the docs folder
id: changed-files-specific
uses: tj-actions/changed-files@v44
with:
files_ignore: |
release-notes/**
.github/**
**.md
- name: Setup environment variables (PR)
if: github.event_name == 'pull_request_target' && steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "pr_from_sha=$(jq --raw-output .pull_request.head.sha $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
echo "pr_from_clone_url=$(jq --raw-output .pull_request.head.repo.clone_url $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
echo "pr_to_clone_url=$(jq --raw-output .pull_request.base.repo.clone_url $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
echo "pr_title=$(jq --raw-output .pull_request.title $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
echo "pr_number=$(jq --raw-output .pull_request.number $GITHUB_EVENT_PATH)" >> $GITHUB_ENV
- name: Setup environment variables (Push)
if: github.event_name == 'push' && steps.changed-files-specific.outputs.any_changed == 'true'
run: |
repo_url="https://github.com/opensearch-project/OpenSearch"
ref_id=$(git rev-parse HEAD)
branch_name=$(git rev-parse --abbrev-ref HEAD)
echo "branch_name=$branch_name" >> $GITHUB_ENV
echo "pr_from_sha=$ref_id" >> $GITHUB_ENV
echo "pr_from_clone_url=$repo_url" >> $GITHUB_ENV
echo "pr_to_clone_url=$repo_url" >> $GITHUB_ENV
echo "pr_title=Push trigger $branch_name $ref_id $repo_url" >> $GITHUB_ENV
echo "pr_number=Null" >> $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
ref: main
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'
run: |
WORKFLOW_URL=`cat gradle-check.log | grep 'WORKFLOW_URL' | awk '{print $2}'`
RESULT=`cat gradle-check.log | grep 'Result:' | awk '{print $2}'`
echo "workflow_url=$WORKFLOW_URL" >> $GITHUB_ENV
echo "result=$RESULT" >> $GITHUB_ENV
- name: Upload Coverage Report
if: success() && steps.changed-files-specific.outputs.any_changed == 'true'
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'
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ env.pr_number }}
body: |
: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'
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" != "" ]]
then
echo "test_failures<<EOF" >> $GITHUB_ENV
echo "" >> $GITHUB_ENV
echo "* **TEST FAILURES:**" >> $GITHUB_ENV
echo '```' >> $GITHUB_ENV
echo "$TEST_FAILURES" >> $GITHUB_ENV
echo '```' >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
fi
- name: Create Comment Flaky
if: ${{ github.event_name == 'pull_request_target' && success() && env.result != 'SUCCESS' }} && steps.changed-files-specific.outputs.any_changed == 'true'
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ env.pr_number }}
body: |
:grey_exclamation: Gradle check result for ${{ env.pr_from_sha }}: [${{ env.result }}](${{ env.workflow_url }}) ${{ env.test_failures }}
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'
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ env.pr_number }}
body: |
:x: Gradle check result for ${{ env.pr_from_sha }}: [${{ env.result }}](${{ env.workflow_url }})
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'
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

0 comments on commit fad98bd

Please sign in to comment.