-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add branch status job before generating diff and align with cl action (…
…#3283) Co-authored-by: Anita Caron <[email protected]>
- Loading branch information
1 parent
bf8fe5b
commit 76802af
Showing
1 changed file
with
140 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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 | ||
|
@@ -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] | ||
|
@@ -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] | ||
|