2a. Test FrEDI Package #147
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
### https://github.com/actions/upload-artifact | |
### https://github.blog/changelog/2021-11-10-github-actions-input-types-for-manual-workflows/ | |
### https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows | |
### https://github.com/r-lib/actions/tree/v2/setup-r-dependencies | |
### https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution | |
### Single line conditional can use ${{}} formulation. Multi-line conditional does not. | |
### For uploading artifacts: | |
### "path:" is the output path where Pandoc will write the compiled PDF. | |
### Note, this should be the same directory as the input paper.md | |
name: 2a. Test FrEDI Package | |
on: | |
workflow_dispatch: | |
inputs: | |
do_compare: | |
type: choice | |
description: Do you want to compare FrEDI results with those from another branch? | |
required: true | |
options: | |
- no | |
- yes | |
ref_branch: | |
type: string | |
description: To which branch of FrEDI do you want to compare results)? | |
default: main | |
agg_types: | |
type: choice | |
description: Aggregate across impact types? | |
required: true | |
options: | |
- no | |
- yes | |
dow_results: | |
type: choice | |
description: Do you want to generate scenario results for report figures? | |
required: true | |
options: | |
- no | |
- yes | |
dow_totals: | |
type: choice | |
description: Do you want to create a plot summarizing scenario results for all sectors? | |
required: true | |
options: | |
- no | |
- yes | |
dow_appendix: | |
type: choice | |
description: Do you want to create sector-specific appendix figures? | |
required: true | |
options: | |
- no | |
- yes | |
sector: | |
type: string | |
description: Which sectors do you want to run? | |
default: "all" | |
workflow_id: | |
type: string | |
description: Enter the run ID for the workflow from which to retrieve the scenario results | |
default: 1 | |
jobs: | |
compile_data: | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
name: Load Package Code | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Send input status | |
run: | | |
echo "ref_name = ${{ github.ref_name }}" | |
echo "ref_branch = ${{ inputs.ref_branch }}" | |
echo "do_compare = ${{ inputs.do_compare }}" | |
echo "agg_types = ${{ inputs.agg_types }}" | |
echo "dow_results = ${{ inputs.dow_results }}" | |
echo "dow_totals = ${{ inputs.dow_totals }}" | |
echo "dow_appendix = ${{ inputs.dow_appendix }}" | |
echo "sector = ${{ inputs.sector }}" | |
echo "workflow_id = ${{ inputs.workflow_id }}" | |
- name: Setup R | |
uses: r-lib/actions/setup-r@v2 | |
- name: Setup R package dependencies | |
uses: r-lib/actions/setup-r-dependencies@v2 | |
with: | |
cache: true | |
cache-version: 1 | |
packages: | | |
any::tidyverse | |
any::devtools | |
any::openxlsx | |
any::ggpubr | |
### Download tmp_sysdata.rda from 1. Compile Main FrEDI Data run | |
- name: Download all artifacts | |
if: | | |
inputs.dow_totals == 'true' || | |
inputs.dow_appendix == 'true' | |
id: download-artifact | |
uses: actions/download-artifact@v4 | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
run-id: ${{ inputs.workflow_id }} | |
path: . | |
- name: Check artifacts | |
# if: ${{ inputs.dow_totals == 'true' || inputs.dow_appendix == 'true' }} | |
if: | | |
inputs.dow_totals == 'true' || | |
inputs.dow_appendix == 'true' | |
run: | | |
echo "dow_totals = ${{ inputs.dow_totals }}" | |
echo "dow_appendix = ${{ inputs.dow_appendix }}" | |
echo "dow_totals | dow_appendix = ${{ inputs.dow_appendix == 'true' || inputs.dow_appendix == 'true' }}" | |
echo "dow_totals | dow_appendix is true. Proceeding with the task." | |
ls -R ./data | |
### Install FrEDI from new branch and get results | |
### Install FrEDI from ref branch and get results | |
- name: Test results | |
if: | | |
inputs.do_compare == 'true' || | |
inputs.dow_results == 'true' || | |
inputs.dow_totals == 'true' || | |
inputs.dow_appendix == 'true' | |
run: | | |
Rscript -e ' | |
### Libraries | |
require(tidyverse) | |
require(devtools) | |
require(openxlsx) | |
require(ggpubr) | |
### Arguments | |
doGenTests <- "${{ inputs.do_compare }}" %in% c("true", "yes") | |
doScenarios <- "${{ inputs.dow_results }}" %in% c("true", "yes") | |
doSumFig <- "${{ inputs.dow_totals }}" %in% c("true", "yes") | |
doAppFig <- "${{ inputs.dow_appendix }}" %in% c("true", "yes") | |
doFigures <- doSumFig | doAppFig | |
totals0 <- doSumFig | |
sectors0 <- "${{ inputs.sector }}" | |
### Which branches to install | |
installOld <- doGenTests | |
installNew <- doGenTests | doScenarios | doSumFig | doAppFig | |
###### Paths ###### | |
### Main repo path, FrEDI project path, scripts path | |
rPath0 <- "."; | |
# pPath0 <- rPath0 |> file.path("FrEDI") | |
pPath0 <- rPath0 | |
### Load scripts and testing functions | |
sPath0 <- pPath0 |> file.path("scripts") | |
tPath0 <- pPath0 |> file.path("testing") | |
sFiles0 <- sPath0 |> list.files(full.names=TRUE) | |
tFiles0 <- tPath0 |> list.files(full.names=TRUE) | |
for(file_i in sFiles0){file_i |> source(); rm(file_i)} | |
for(file_i in tFiles0){file_i |> source(); rm(file_i)} | |
### Where to save results | |
oPath0 <- pPath0 |> file.path("data_tests") | |
oFileNew <- oPath0 |> file.path("newResults.rda") | |
oFileRef <- oPath0 |> file.path("refResults.rda") | |
### Check if path exists and, if not, create it | |
exists0 <- oPath0 |> dir.exists() | |
if(!exists0) oPath0 |> dir.create(recursive=TRUE) | |
###### Action Arguments ###### | |
urlRepo <- "https://github.com/USEPA/FrEDI" | |
newBranch <- "${{ github.ref_name }}" | |
refBranch <- "${{ inputs.ref_branch }}" | |
c(newBranch, refBranch) |> print() | |
aggTypes <- "${{ inputs.agg_types }}" %in% c("true", "yes") | |
if(aggTypes) { | |
cAggLvls <- "all" | |
} else { | |
cAggLvls <- c("national", "modelaverage", "impactyear") | |
} ### End if(aggTypes) | |
"got here" |> print() | |
' | |
- name: Upload General Tests | |
if: | | |
inputs.do_compare == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: general_tests | |
path: | | |
./data_tests/* | |
- name: Upload Scenario Results | |
if: | | |
inputs.dow_results == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: scenario_results | |
path: | | |
./data_tests/* | |
- name: Upload Report Figures | |
if: | | |
inputs.dow_totals == 'true' || | |
inputs.dow_appendix == 'true' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: report_figures | |
path: | | |
./data_tests/* | |