2024-12-18-ISI-RC_AdaptEns2 #92
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
name: HubSubmissionValidation(R) | |
on: | |
workflow_dispatch: | |
pull_request_target: | |
branches: main | |
paths: | |
- 'model-output/**' | |
- 'model-metadata/*' | |
- '!**README**' | |
- '!**.md' | |
- '!**.MD' | |
jobs: | |
validate-submission_job: | |
runs-on: ubuntu-latest | |
outputs: | |
changed_files: ${{ steps.get_changed_files.outputs.all_changed_files }} | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
PR_NUMBER: ${{ github.event.pull_request.number }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
# Get changes from pull request for later use | |
# -------------------------------------------- | |
- name: Get changes | |
id: get_changed_files | |
uses: tj-actions/changed-files@v41 | |
# DEBUG ONLY | |
- name: List all changed files | |
run: | | |
for file in ${{ steps.get_changed_files.outputs.all_changed_files }}; do | |
echo "$file was changed" | |
done | |
# Install Python | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: '3.x' | |
# Checkout the python tools repo | |
# used to verify the PR changes | |
# ------------------------------------------ | |
- name: checkout python tools repo | |
uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
repository: 'european-modelling-hubs/hub-tools' | |
ref: 'main' | |
path: tools | |
# Check if some submission is outside allowed folders | |
- name: Check submission paths | |
env: | |
pr_changes: ${{ steps.get_changed_files.outputs.all_changed_files }} | |
run: | | |
python ./tools/code/check_submission_paths.py | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
install-r: false | |
use-public-rspm: true | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libcurl4-openssl-dev libv8-dev | |
- uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
packages: Infectious-Disease-Modeling-Hubs/hubValidations, any::sessioninfo | |
- name: Run validations | |
env: | |
PR_NUMBER: ${{ github.event.number }} | |
run: | | |
library("hubValidations") | |
v <- hubValidations::validate_pr( | |
gh_repo = Sys.getenv("GITHUB_REPOSITORY"), | |
pr_number = Sys.getenv("PR_NUMBER") | |
) | |
hubValidations::check_for_errors(v, verbose = TRUE) | |
shell: Rscript {0} | |
# Eventually comment on it | |
- name: Comment PR | |
uses: thollander/actions-comment-pull-request@v2 | |
with: | |
message: | | |
All validation checks completed successfully. | |
pr_number: ${{ github.event.pull_request.number }} | |
# Approve pull request | |
# --------------------------- | |
- name: Approve Pull Request | |
uses: juliangruber/[email protected] | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
number: ${{ github.event.pull_request.number }} | |
# And then merge it | |
# --------------------------- | |
- name: Merge the pull request | |
id: merge_pr | |
run: | | |
echo ">>> Merging PR URL: ${{ github.event.pull_request.html_url }}" | |
gh pr merge --auto --squash $PR_URL | |
env: | |
PR_URL: ${{ github.event.pull_request.html_url }} | |
GH_TOKEN: ${{ github.token }} | |
call-persisting-wf: | |
needs: validate-submission_job | |
uses: european-modelling-hubs/RespiCast-Covid19/.github/workflows/persist_changes.yml@main | |
with: | |
changes-list: ${{ needs.validate-submission_job.outputs.changed_files }} | |
secrets: | |
envPAT: ${{ secrets.GITHUB_TOKEN }} |