-
Notifications
You must be signed in to change notification settings - Fork 0
107 lines (84 loc) · 2.79 KB
/
ci.yml
File metadata and controls
107 lines (84 loc) · 2.79 KB
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
name: CI
on:
push:
pull_request:
jobs:
r-checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libcairo2-dev \
libcurl4-openssl-dev \
libfontconfig1-dev \
libglpk-dev \
libpng-dev \
libx11-dev \
pandoc
- name: Setup R
uses: r-lib/actions/setup-r@v2
with:
r-version: "4.5.2"
use-public-rspm: false
- name: Restore renv packages
uses: r-lib/actions/setup-renv@v2
- name: Restore pinned dependencies
run: Rscript 000_install_dependencies.R
- name: Verify renv.lock unchanged
run: git diff --exit-code renv.lock
- name: Check renv status
run: >
Rscript -e 's <- renv::status();
if (is.list(s) && !isTRUE(s$synchronized)) quit(status = 1)'
- name: Lint
run: Rscript dev/lint.R
- name: Tests
run: Rscript -e 'testthat::test_dir("tests/testthat")'
pipeline-rebuild:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libcairo2-dev \
libcurl4-openssl-dev \
libfontconfig1-dev \
libglpk-dev \
libpng-dev \
libx11-dev \
pandoc
- name: Setup R
uses: r-lib/actions/setup-r@v2
with:
r-version: "4.5.2"
use-public-rspm: false
- name: Restore renv packages
uses: r-lib/actions/setup-renv@v2
- name: Install pinned dependencies
run: Rscript 000_install_dependencies.R
- name: Save tracked tables for comparison
run: |
mkdir -p "$RUNNER_TEMP/reference_tables"
cp results/tables/*.csv "$RUNNER_TEMP/reference_tables"/
- name: Remove committed analysis outputs before rebuild
run: rm -f results/figures/*.png results/tables/*.csv
- name: Rebuild analysis outputs
run: Rscript run_all.R
- name: Validate rebuilt outputs
run: Rscript -e 'testthat::test_dir("tests/testthat")'
- name: Compare regenerated tables to tracked results
run: Rscript dev/compare_tables.R "$RUNNER_TEMP/reference_tables" results/tables
- name: Verify key figures were regenerated
run: |
test -f results/figures/qc_library_size.png
test -f results/figures/ma_plot.png
test -f results/figures/pca_plot.png
test -f results/figures/sensitivity_lfc_scatter.png
test -f results/figures/volcano_plot.png