Skip to content

2a. Test FrEDI Package #101

2a. Test FrEDI Package

2a. Test FrEDI Package #101

Workflow file for this run

### 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
### 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: 3. Test FrEDI Package
# on: [workflow_dispatch]
on:
workflow_dispatch:
inputs:
run_tests:
type: choice
description: Run general tests?
required: true
options:
- no
- yes
figH_results:
type: choice
description: Fig H results?
required: true
options:
- no
- yes
make_appx_figs:
type: choice
description: Create appendix figures for report?
required: true
options:
- no
- yes
make_tots_figs:
type: choice
description: Make figures for impact type totals?
required: true
options:
- no
- yes
jobs:
compile_data:
runs-on: ubuntu-latest
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
name: Load Package Code
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Send input status
run: |
echo "${{ inputs.run_tests }} ${{ inputs.figH_results }} ${{ inputs.make_appx_figs }} ${{ inputs.make_tots_figs }}"
- 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::ggpubr
any::openxlsx
any::devtools
- name: Install FrEDI
run: |
Rscript -e '
devtools::install_github(
repo = "https://github.com/USEPA/FrEDI",
ref = "${{ github.ref_name }}",
subdir = "FrEDI",
dependencies = FALSE,
upgrade = "never",
force = TRUE,
type = "source"
)
'
- name: Run tests & create figures
run: |
Rscript -e '
### Main repo path, FrEDI project path, scripts path
rPath0 <- ".";
pPath0 <- rPath0 |> file.path("FrEDI")
sPath0 <- pPath0 |> file.path("scripts")
tPath0 <- pPath0 |> file.path("testing")
### Load FrEDI
pPath0 |> devtools::load_all()
### Load test code
tFiles0 <- tPath0 |> list.files(full.names=TRUE)
for(file_i in tFiles0){file_i |> source(); rm(file_i)}
### Load source
sPath0 |> file.path("create_DoW_results.R") |> source()
### Which tests to do
do_tests <- "${{ inputs.run_tests }}" == "true"
do_figH <- "${{ inputs.figH_results }}" == "true"
do_appx <- "${{ inputs.make_appx_figs }}" == "true"
do_tots <- "${{ inputs.make_tots_figs }}" == "true"
do_figs <- do_appx | do_tots
### Where to save results
oPath0 <- pPath0 |> file.path("data_tests")
oPath1 <- oPath0 |> file.path("general")
oPath2 <- oPath0 |> file.path("report_figures")
### Whether paths exist
exists0 <- oPath0 |> dir.exists()
exists1 <- oPath1 |> dir.exists()
exists2 <- oPath2 |> dir.exists()
### Check if path exists and, if not, create it
if(!exists0){ oPath0 |> dir.create(recursive = TRUE)}
if(!exists1){ oPath1 |> dir.create(recursive = TRUE)}
if(!exists2){ oPath2 |> dir.create(recursive = TRUE)}
### Test results
if(do_tests){
### Run FrEDI
results0 <- run_fredi()
### Run tests
tests0 <- results0 |> general_fredi_test(
outPath = oPath1,
save = TRUE,
return = TRUE,
overwrite = TRUE
)
### Create plot totals
listResults <- create_default_tablePlot()
save0 <- listResults |> save(file= oPath1 |> file.path("defaultScenarioTotals.rda")) |> try()
### Remove results
rm(exists0, results0, tests0, listResults, save0)
} ### End if(do_tests)
### Create Fig H results
if(do_figH){
### Figure H results
results0 <- run_fredi(aggLevels=c("modelaverage", "national", "impactYear"))
results0 <- results0 |> filter(year %in% seq(2010, 2090, by=5))
save0 <- results0 |> write.csv(file=oPath2 |> file.path("FigH_results.csv"), row.names=F) |> try()
### Remove reslts
rm(results0, save0)
} ### End if(do_figH)
### Create report figures
if(do_figs){
### Load source
sPath0 |> file.path("create_DoW_results.R") |> source()
### Create report figures
reports0 <- create_DoW_results(
outPath = oPath2,
saveFile = TRUE,
loadCode = "project",
totals = do_tots,
silent = FALSE,
testing = TRUE,
return = FALSE,
fpath = pPath0
)
} ### End if(do_figs)
'
- name: Upload Tests
if: |
inputs.run_tests == 'true'
uses: actions/upload-artifact@v3
with:
name: Test Data
path: |
./FrEDI/data_tests/general/defaultScenarioTotals.rda
./FrEDI/data_tests/general/testResults_fredi_general.xlsx
- name: Upload FigH Results
if: |
inputs.figH_results == 'true'
uses: actions/upload-artifact@v3
with:
name: FigH results
path: |
./FrEDI/data_tests/report_figures/
- name: Upload Report Appendix Figures
if: |
inputs.make_appx_figs == 'true'
uses: actions/upload-artifact@v3
with:
name: Report appendix figures & data
path: |
./FrEDI/data_tests/report_figures/
- name: Upload Report Fig7 Figures
if: |
inputs.make_tots_figs == 'true'
uses: actions/upload-artifact@v3
with:
name: Fig7 report figures & data
path: |
./FrEDI/data_tests/report_figures/
# ./FrEDI/data_tests/general/FigH_results.csv
# #
# - name: Commit results
# run: |
# git config --local core.autocrlf false
# git config --local user.email "${{ github.actor }}@users.noreply.github.com"
# git config --local user.name "${{ github.actor }}"
# git add data/tmp_sysdata.rda
# git add data_tests/**.xlsx
# git pull origin ${{ github.head_ref }} --autostash --rebase -X ours
# git commit -a -m "Updated temporary system data and tests"
# git push