the big one #84
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 }} | |
R_MAX_VSIZE: 32000000000 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
fetch-depth: 1 | |
# 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 | |
# 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") | |
) | |
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: 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 }} |