-
Notifications
You must be signed in to change notification settings - Fork 2
180 lines (162 loc) · 5.24 KB
/
r_macos.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
#
# See https://github.com/r-lib/actions/tree/master/examples#readme for
# additional example workflows available for the R community.
# name: R-MacOS
#
# on:
# push:
# branches: [ "main" ]
# pull_request:
# branches: [ "main" ]
#
# permissions:
# contents: read
#
# jobs:
# build:
# runs-on: macos-latest
#
# strategy:
# matrix:
# r-version: ['4.4.0', '4.3.2']
#
# steps:
# - uses: actions/checkout@v3
#
# - name: Update Homebrew
# run: |
# brew update
#
# - name: Install pandoc
# run: |
# for i in {1..3}; do
# brew install pandoc && break || sleep 15
# done
#
# - name: Install gfortran and configure Makevars
# run: |
# brew install gcc
# mkdir -p ~/.R
# touch ~/.R/Makevars
# echo "FC=$(brew --prefix)/bin/gfortran" >> ~/.R/Makevars
# echo "F77=$(brew --prefix)/bin/gfortran" >> ~/.R/Makevars
# echo "FLIBS=-L$(brew --prefix)/lib/gcc/current -lgfortran -lquadmath -lm" >> ~/.R/Makevars
# echo "LDFLAGS=-L$(brew --prefix)/lib/gcc/current" >> ~/.R/Makevars
#
# - name: Set up R ${{ matrix.r-version }}
# uses: r-lib/actions/setup-r@v2
# with:
# r-version: ${{ matrix.r-version }}
#
# - name: Install R dependencies
# run: |
# Rscript -e "install.packages(c('remotes', 'rcmdcheck', 'reticulate', 'renv', 'knitr', 'rmarkdown', 'lsa', 'purrr', 'testthat', 'htmltools'), repos='https://cran.r-project.org')"
# Rscript -e "if (getRversion() >= '4.4.0') remotes::install_version('Matrix', version = '1.5.3') else install.packages('Matrix', type = 'binary')"
# Rscript -e "remotes::install_version('htmltools', version = '0.5.8')"
# Rscript -e "renv::restore()"
#
# - name: Set up Python
# uses: actions/setup-python@v2
# with:
# python-version: '3.10.x'
#
# - name: Install Python virtualenv
# run: pip install virtualenv
#
# - name: Create Python virtual environment
# run: virtualenv flair_env
#
# - name: Install Python dependencies in virtual environment
# run: |
# source flair_env/bin/activate
# pip install --upgrade pip
# pip install scipy==1.12.0
# pip install flair
#
# - name: Remove Python cache files
# run: find . -name '*.pyc' -delete
#
# - name: Check (with virtual environment)
# run: |
# source flair_env/bin/activate
# R CMD build --no-build-vignettes .
# shell: bash
name: R-MacOS
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
build:
runs-on: macos-latest
strategy:
matrix:
r-version: ['4.4.0', '4.3.2']
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Update Homebrew
run: brew update
- name: Install pandoc
run: |
for i in {1..3}
do
brew install pandoc && break || sleep 15
done
- name: Install gfortran and configure Makevars
run: |
brew install gcc
mkdir -p ~/.R
touch ~/.R/Makevars
echo "FC=$(brew --prefix)/bin/gfortran" >> ~/.R/Makevars
echo "F77=$(brew --prefix)/bin/gfortran" >> ~/.R/Makevars
echo "FLIBS=-L$(brew --prefix)/lib/gcc/current -lgfortran -lquadmath -lm" >> ~/.R/Makevars
echo "LDFLAGS=-L$(brew --prefix)/lib/gcc/current" >> ~/.R/Makevars
- name: Set up R ${{ matrix.r-version }}
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.r-version }}
- name: Install R dependencies
run: |
# 基礎包安裝
Rscript -e 'install.packages(c("remotes", "rcmdcheck", "reticulate", "renv", "knitr", "rmarkdown", "lsa", "purrr", "testthat"), repos="https://cran.r-project.org")'
# 根據 R 版本有條件地安裝 Matrix
Rscript -e '
if (getRversion() >= "4.4.0") {
install.packages("Matrix")
} else {
remotes::install_version("Matrix", version = "1.5.1", repos = "https://cran.r-project.org")
}
'
# 安裝指定版本的 htmltools
Rscript -e 'remotes::install_version("htmltools", version = "0.5.8")'
# 最後執行 renv::restore()
Rscript -e 'renv::restore()'
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.10.x'
- name: Install Python virtualenv
run: pip install virtualenv
- name: Create Python virtual environment
run: virtualenv flair_env
- name: Install Python dependencies in virtual environment
run: |
source flair_env/bin/activate
pip install --upgrade pip
pip install scipy==1.12.0
pip install flair
- name: Remove Python cache files
run: find . -name '*.pyc' -delete
- name: Check (with virtual environment)
run: |
source flair_env/bin/activate
R CMD build --no-build-vignettes .
shell: bash