T004 #102
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: Validate Submissions V3 | |
on: | |
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: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 1 | |
# Checkout the python tools repo | |
# ------------------------------------------- | |
- name: checkout python tools repo | |
uses: actions/checkout@v3 | |
with: | |
repository: 'european-modelling-hubs/hub-tools' | |
ref: 'main' | |
path: './tools/' | |
# 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 | |
# TEST ONLY ----------------------------------- | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
install-r: false | |
use-public-rspm: true | |
# Install System dependencies | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libcurl4-openssl-dev libv8-dev | |
# Install hubValidations package from HubVerse | |
- uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
packages: hubverse-org/hubValidations, any::sessioninfo | |
# Run Pyton code | |
# ------------------------- | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10' | |
- run: pip install pandas pyarrow | |
# Validate data submission | |
- name: Run validations | |
env: | |
files: ${{ steps.get_changed_files.outputs.all_changed_files }} | |
PR_NUMBER: ${{ github.event.number }} | |
run: | | |
library("hubValidations") | |
v <- hubValidations::validate_pr( | |
gh_repo = Sys.getenv("GITHUB_REPOSITORY"), | |
pr_number = Sys.getenv("PR_NUMBER"), | |
skip_submit_window_check = FALSE, | |
derived_task_ids = c("target_end_date", "pop_group") | |
) | |
hubValidations::check_for_errors(v, verbose = TRUE) | |
shell: Rscript {0} | |
- name: Validate derived task ids | |
env: | |
input_list: ${{ steps.get_changed_files.outputs.all_changed_files }} | |
run: | | |
python ./tools/code/validate_derived_task_ids.py | |
# 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: Testing-Forecast-Actions/ScenarioModellingHub/.github/workflows/persist_changes.yml@main | |
with: | |
changes-list: ${{ needs.validate-submission_job.outputs.changed_files }} | |
secrets: | |
envPAT: ${{ secrets.GITHUB_TOKEN }} |