Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Robot diff GH Action on PRs #3283

Merged
merged 1 commit into from
May 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
178 changes: 140 additions & 38 deletions .github/workflows/diff.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ on:

issue_comment:
types: [created]
env:
DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
diff-reports:
branch_status:
if: ${{ github.event.issue.pull_request }}
runs-on: macos-latest
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
Expand All @@ -20,58 +22,157 @@ jobs:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: better0fdead/actions-setup-docker@better0fdead/increase-timeout
if: steps.check.outputs.triggered == 'true'
- run: |
set -x
docker version
if: steps.check.outputs.triggered == 'true'
- name: Install ODK
run: docker pull obolibrary/odklite
if: steps.check.outputs.triggered == 'true'
# Checks-out current branch
- uses: xt0rted/pull-request-comment-branch@v2.0.0
- uses: xt0rted/pull-request-comment-branch@v2
id: comment-branch
- uses: actions/checkout@v3
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
# Checks-out master branch under "master" directory
- uses: actions/checkout@v3
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
fetch-depth: 0
- name: Check current branch status
if: steps.check.outputs.triggered == 'true'
id: info
run: |
echo "status=$(git rev-list --left-right --count origin/$DEFAULT_BRANCH...origin/`git branch --show-current` | awk '{print $1}')"
echo "status=$(git rev-list --left-right --count origin/$DEFAULT_BRANCH...origin/`git branch --show-current` | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Warn users with a comment
if: steps.info.outputs.status >= 1
run: echo "Your branch is ${{ steps.info.outputs.status }} commit/s behind, please update your branch." > warncomment.md
- name: Post comment
if: steps.info.outputs.status >= 1 && steps.check.outputs.triggered == 'true'
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
uses: NejcZdovc/comment-pr@v2
with:
github_token: ${{secrets.GITHUB_TOKEN}}
file: "../../warncomment.md"
- name: Fail step if branch is behind
if: steps.info.outputs.status >= 1 && steps.check.outputs.triggered == 'true'
run: |
echo "Your branch is ${{ steps.info.outputs.status }} commit/s behind, please update your branch."
exit 1
edit_file:
needs: [branch_status]
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
container: obolibrary/odkfull:v1.5
steps:
- uses: khan/[email protected]
id: check
with:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
with:
ref: master
path: master
- name: Diff classification
if: steps.check.outputs.triggered == 'true'
run: |
cd src/ontology
docker run -v $PWD/../../:/work -w /work/src/ontology -e ROBOT_JAVA_ARGS='-Xmx9G' -e JAVA_OPTS='-Xmx9G' --rm obolibrary/odklite robot diff --left ../../master/src/ontology/uberon-edit.obo --left-catalog ../../master/src/ontology/catalog-v001.xml --right uberon-edit.obo --right-catalog catalog-v001.xml -f markdown -o edit-diff.md
run: export ROBOT_JAVA_ARGS='-Xmx9G'; robot diff --labels True --left master/src/ontology/uberon-edit.obo --left-catalog master/src/ontology/catalog-v001.xml --right branch/src/ontology/uberon-edit.obo --right-catalog branch/src/ontology/catalog-v001.xml -f markdown -o edit-diff.md
- name: Upload diff
if: steps.check.outputs.triggered == 'true'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: edit-diff.md
path: src/ontology/edit-diff.md
- name: Make step for branch
path: edit-diff.md
classify_branch:
needs: [branch_status]
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
container: obolibrary/odkfull:v1.5
steps:
- uses: khan/[email protected]
id: check
with:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: xt0rted/pull-request-comment-branch@v2
id: comment-branch
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
run: cd src/ontology && mkdir -p tmp reports mirror && docker run -v $PWD/../../:/work -w /work/src/ontology -e ROBOT_JAVA_ARGS='-Xmx9G' -e JAVA_OPTS='-Xmx9G' --rm obolibrary/odklite make BRI=false MIR=false PAT=false IMP=false uberon-simple.owl > TESTLOG.log
- name: Make step for master
with:
ref: ${{ steps.comment-branch.outputs.head_ref }}
- name: Classify ontology PR branch
if: steps.check.outputs.triggered == 'true'
run: cd master/src/ontology && mkdir -p tmp reports mirror && docker run -v $PWD/../../:/work -w /work/src/ontology -e ROBOT_JAVA_ARGS='-Xmx9G' -e JAVA_OPTS='-Xmx9G' --rm obolibrary/odklite make BRI=false MIR=false PAT=false IMP=false uberon-simple.owl > TESTLOG.log
- name: Diff report
run: export ROBOT_JAVA_ARGS='-Xmx9G'; cd src/ontology; make BRI=false MIR=false PAT=false IMP=false COMP=false uberon-base.owl > TESTLOG.log
- name: Upload classified ontology in PR branch
if: steps.check.outputs.triggered == 'true'
run: |
cd src/ontology
docker run -v $PWD/../../:/work -w /work/src/ontology -e ROBOT_JAVA_ARGS='-Xmx9G' -e JAVA_OPTS='-Xmx9G' --rm obolibrary/odklite robot diff --left ../../master/src/ontology/uberon-simple.owl --left-catalog catalog-v001.xml --right uberon-simple.owl --right-catalog ../../master/src/ontology/catalog-v001.xml -f markdown -o simple-report.md
uses: actions/upload-artifact@v4
with:
name: uberon-base-pr.owl
path: src/ontology/uberon-base.owl
retention-days: 1
classify_main:
needs: [branch_status]
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
container: obolibrary/odkfull:v1.5
steps:
- uses: khan/[email protected]
id: check
with:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
with:
ref: master
- name: Classify ontology main branch
if: steps.check.outputs.triggered == 'true'
run: export ROBOT_JAVA_ARGS='-Xmx9G'; cd src/ontology; make BRI=false MIR=false PAT=false IMP=false COMP=false uberon-base.owl > TESTLOG.log
- name: Upload classified ontology main branch
if: steps.check.outputs.triggered == 'true'
uses: actions/upload-artifact@v4
with:
name: uberon-base-main.owl
path: src/ontology/uberon-base.owl
retention-days: 1
diff_classification:
needs: [classify_branch, classify_main]
runs-on: ubuntu-latest
container: obolibrary/odkfull:v1.5
steps:
- uses: khan/[email protected]
id: check
with:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
- name: Download classified ontology main branch
if: steps.check.outputs.triggered == 'true'
uses: actions/download-artifact@v4
with:
name: uberon-base-main.owl
path: src/ontology/uberon-base-main.owl
- name: Download classified ontology in PR branch
if: steps.check.outputs.triggered == 'true'
uses: actions/download-artifact@v4
with:
name: uberon-base-pr.owl
path: src/ontology/uberon-base-pr.owl
- name: Diff classification
if: steps.check.outputs.triggered == 'true'
run: export ROBOT_JAVA_ARGS='-Xmx9G'; cd src/ontology; robot diff --labels True --left uberon-base-main.owl/uberon-base.owl --left-catalog catalog-v001.xml --right uberon-base-pr.owl/uberon-base.owl --right-catalog catalog-v001.xml -f markdown -o classification-diff.md
- name: Upload diff
if: steps.check.outputs.triggered == 'true'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: simple-report.md
path: src/ontology/simple-report.md
name: classification-diff.md
path: src/ontology/classification-diff.md
post_comment:
needs: [diff-reports]
needs: [edit_file, diff_classification]
runs-on: ubuntu-latest
steps:
- uses: khan/[email protected]
Expand All @@ -80,33 +181,34 @@ jobs:
trigger: '#gogoeditdiff'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- uses: actions/checkout@v3
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
- name: Download reasoned diff
if: steps.check.outputs.triggered == 'true'
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: simple-report.md
name: classification-diff.md
- name: Prepare reasoned comment
run: "echo \"<details>\n <summary> Here's a diff of how these changes impact the classified ontology (on -simple file): </summary> \n\" > comment.md; cat simple-report.md >> comment.md"
if: steps.check.outputs.triggered == 'true'
run: "echo \"<details>\n <summary> Here's a diff of how these changes impact the classified ontology (on -base file): </summary> \n\" > comment.md; cat classification-diff.md >> comment.md"
- name: Post reasoned comment
if: steps.check.outputs.triggered == 'true'
uses: NejcZdovc/[email protected]
with:
file: "../../comment.md"
identifier: "REASONED"
github_token: ${{secrets.GITHUB_TOKEN}}
- uses: actions/checkout@v3
- uses: actions/checkout@v4
if: steps.check.outputs.triggered == 'true'
- name: Download edit diff
if: steps.check.outputs.triggered == 'true'
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: edit-diff.md
path: edit-diff.md
- name: Prepare edit file comment
run: "echo \"<details>\n <summary> Here's a diff of your edit file (unreasoned) </summary> \n\" > edit-comment.md; cat edit-diff.md >> edit-comment.md"
if: steps.check.outputs.triggered == 'true'
run: "echo \"<details>\n <summary> Here's a diff of your edit file (unreasoned) </summary> \n\" > edit-comment.md; cat edit-diff.md >> edit-comment.md"
- name: Post comment
if: steps.check.outputs.triggered == 'true'
uses: NejcZdovc/[email protected]
Expand Down