-
Notifications
You must be signed in to change notification settings - Fork 7
142 lines (123 loc) · 4.72 KB
/
test_fredi.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
### 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:
inputs:
ref_branch:
type: string
description: To which branch of FrEDI do you want to compare results)?
agg_types:
type: choice
description: Aggregate across impact types?
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 }}
# echo "${{ inputs.run_tests }} ${{ inputs.figH_results }} ${{ inputs.make_appx_figs }} ${{ inputs.make_tots_figs }}"
name: Load Package Code
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Send input status
run: |
echo "${{ inputs.ref_branch }} ${{ inputs.agg_types }}"
- 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
### Install FrEDI from new branch and get results
### Install FrEDI from ref branch and get results
- name: Test results
run: |
Rscript -e '
###### Paths ######
### Main repo path, FrEDI project path, scripts path
rPath0 <- ".";
# pPath0 <- rPath0 |> file.path("FrEDI")
pPath0 <- rPath0
sPath0 <- pPath0 |> file.path("scripts")
tPath0 <- pPath0 |> file.path("testing")
### 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
if(!exists0) oPath0 |> dir.create(recursive = TRUE)
###### Action Arguments ######
urlRepo <- "https://github.com/USEPA/FrEDI"
newBranch <- "${{ github.ref_name }}"
refBranch <- "${{ inputs.ref_branch }}"
aggTypes <- "${{ inputs.agg_types }}" == "true"
if(aggTypes) cAggLvls <- "all"
else cAggLvls <- c("national", "modelaverage", "impactyear")
###### Run FrEDI for Reference Branch ######
### Install FrEDI from ref branch
### Load library
### Run FrEDI
devtools::install_github(repo=urlRepo, ref=refBranch, dependencies=F, upgrade="never", force=T, type="source")
library(FrEDI)
dfRef <- run_fredi(allLevels=cAggLvls)
dfRef |> save(file=oFileRef)
### Detach FrEDI package
package:FrEDI |> detach(unload=TRUE)
###### Run FrEDI for New Branch ######
### Install FrEDI from new branch
devtools::install_github(repo=urlRepo, ref=newBranch, dependencies=F, upgrade="never", force=T, type="source")
library(FrEDI)
dfNew <- run_fredi(allLevels=cAggLvls)
dfNew |> save(file=oFileNew)
###### Test results ######
### Load testing scripts
tFiles0 <- tPath0 |> list.files(full.names=TRUE)
for(file_i in tFiles0){file_i |> source(); rm(file_i)}
### Get test results
dfTests <- general_fredi_test(newOutputs=dfNew, refOutputs=dfRef, outPath=oPath0)
'
- name: Upload Tests
uses: actions/upload-artifact@v4
with:
name: Test Data
path: |
data_tests/*.rd*
data_tests/*.xlsx