13
13
- main
14
14
15
15
jobs :
16
+ test-arm :
17
+ runs-on : self-hosted
18
+ env :
19
+ DISPLAY : :0
20
+ PYTEST_ADDOPTS : " --color=yes" # colors in pytest
21
+ strategy :
22
+ fail-fast : false
23
+ matrix :
24
+ python : ['3.7.12', '3.10.2']
25
+ steps :
26
+ - name : Checkout the repository
27
+ uses : actions/checkout@v2
28
+
29
+ - name : Check Runner
30
+ run : |
31
+ which latex
32
+ which ffmpeg
33
+ latex --version
34
+ ffmpeg -version
35
+ which python
36
+ python --version
37
+
38
+ - name : Activate Python ${{ matrix.python }}
39
+ run : |
40
+ echo "/root/.pyenv/versions/${{ matrix.python }}/bin:/root/.poetry/bin:$PATH" > $GITHUB_PATH
41
+
42
+ - name : Show Python Version
43
+ run : |
44
+ python --version --version
45
+
46
+ - name : Install Manim
47
+ run : |
48
+ poetry install
49
+
50
+ - name : Run tests
51
+ run : |
52
+ poetry run pytest
53
+
54
+ - name : Run module doctests
55
+ run : |
56
+ poetry run pytest --cov-append --doctest-modules --ignore-glob="*opengl*" manim
57
+
58
+ - name : Run doctests in rst files
59
+ run : |
60
+ cd docs && pip install -r requirements.txt && poetry run make doctest O=-tskip-manim
61
+
62
+
16
63
test :
17
64
runs-on : ${{ matrix.os }}
18
65
env :
19
66
DISPLAY : :0
20
67
PYTEST_ADDOPTS : " --color=yes" # colors in pytest
68
+ GLCONTEXT_WIN_LIBGL : C:\msys64\mingw64\bin\opengl32.dll
21
69
strategy :
22
70
fail-fast : false
23
71
matrix :
24
- os : [ubuntu-22.04 , macos-latest, windows-latest]
25
- python : ["3.8", "3.9", "3.10", "3.11" ]
72
+ os : [ubuntu-latest , macos-latest, windows-latest]
73
+ python : ['3.7', '3.8', '3.9', '3.10' ]
26
74
27
75
steps :
28
76
- name : Checkout the repository
29
- uses : actions/checkout@v3
30
-
31
- - name : Install Poetry
32
- run : |
33
- pipx install "poetry==1.5.*"
34
- poetry config virtualenvs.prefer-active-python true
77
+ uses : actions/checkout@v2
35
78
36
79
- name : Setup Python ${{ matrix.python }}
37
- uses : actions/setup-python@v4
80
+ uses : actions/setup-python@v2
38
81
with :
39
82
python-version : ${{ matrix.python }}
40
- cache : " poetry"
83
+
84
+ - name : Install Poetry
85
+ run : |
86
+ pip install --user poetry
41
87
42
88
- name : Setup macOS PATH
43
89
if : runner.os == 'macOS'
@@ -48,38 +94,33 @@ jobs:
48
94
shell : bash
49
95
id : cache-vars
50
96
run : |
51
- echo "date=$(/bin/date -u "+%m%w%Y")" >> $GITHUB_OUTPUT
97
+ echo "::set-output name=poetry-venv-dir::$(poetry config virtualenvs.path)"
98
+ echo "::set-output name=date::$(/bin/date -u "+%m%w%Y")"
99
+
100
+ - name : Setup Poetry cache
101
+ uses : actions/cache@v2
102
+ with :
103
+ path : ${{ steps.cache-vars.outputs.poetry-venv-dir }}
104
+ key : ${{ runner.os }}-poetry-${{ env.pythonLocation }}-${{ hashFiles('pyproject.toml') }}-${{ hashFiles('poetry.lock') }}
52
105
53
106
- name : Install and cache ffmpeg (all OS)
54
- uses : FedericoCarboni/setup-ffmpeg@v2
107
+ uses : FedericoCarboni/setup-ffmpeg@v1.1.0
55
108
with :
56
109
token : ${{ secrets.GITHUB_TOKEN }}
57
110
id : setup-ffmpeg
58
111
59
112
- name : Install system dependencies (Linux)
60
- if : runner.os == 'Linux'
61
- uses : awalsh128/cache-apt-pkgs-action@latest
62
- with :
63
- packages : python3-opengl libpango1.0-dev xvfb
64
- version : 1.0
65
-
66
- - name : Install Texlive (Linux)
67
- if : runner.os == 'Linux'
68
- uses : teatimeguest/setup-texlive-action@v2
69
- with :
70
- cache : true
71
- packages : scheme-basic fontspec inputenc fontenc tipa mathrsfs calligra xcolor standalone preview doublestroke ms everysel setspace rsfs relsize ragged2e fundus-calligra microtype wasysym physics dvisvgm jknapltx wasy cm-super babel-english gnu-freefont mathastext cbfonts-fd xetex
72
-
73
- - name : Start virtual display (Linux)
74
113
if : runner.os == 'Linux'
75
114
run : |
115
+ sudo apt update
116
+ sudo apt-get -y install texlive texlive-latex-extra texlive-fonts-extra texlive-latex-recommended texlive-science texlive-fonts-extra tipa python-opengl libpango1.0-dev xvfb
76
117
# start xvfb in background
77
118
sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
78
119
79
120
- name : Setup macOS cache
80
- uses : actions/cache@v3
81
121
id : cache-macos
82
122
if : runner.os == 'macOS'
123
+ uses : actions/cache@v2
83
124
with :
84
125
path : ${{ github.workspace }}/macos-cache
85
126
key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
@@ -118,12 +159,20 @@ jobs:
118
159
- name : Setup Windows cache
119
160
id : cache-windows
120
161
if : runner.os == 'Windows'
121
- uses : actions/cache@v3
162
+ uses : actions/cache@v2
122
163
with :
123
164
path : ${{ github.workspace }}\ManimCache
124
165
key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
125
166
126
- - uses : ssciwr/setup-mesa-dist-win@v1
167
+ - name : Setup MSYS2 (Windows)
168
+ if : runner.os == 'Windows'
169
+ uses : msys2/setup-msys2@v2
170
+ with :
171
+ release : false
172
+ msystem : MINGW64
173
+ path-type : inherit
174
+ install : >-
175
+ mingw-w64-x86_64-mesa
127
176
128
177
- name : Install system dependencies (Windows)
129
178
if : runner.os == 'Windows' && steps.cache-windows.outputs.cache-hit != 'true'
@@ -133,7 +182,7 @@ jobs:
133
182
echo "Install Tinytex"
134
183
Invoke-WebRequest "https://github.com/yihui/tinytex-releases/releases/download/daily/TinyTeX-1.zip" -O "$($env:TMP)\TinyTex.zip"
135
184
Expand-Archive -LiteralPath "$($env:TMP)\TinyTex.zip" -DestinationPath "$($PWD)\ManimCache\LatexWindows"
136
- $env:Path = "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\windows ;$($env:PATH)"
185
+ $env:Path = "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\win32 ;$($env:PATH)"
137
186
tlmgr update --self
138
187
foreach ($c in $tinyTexPackages){
139
188
$c=$c.Trim()
@@ -145,23 +194,27 @@ jobs:
145
194
- name : Add Windows dependencies to PATH
146
195
if : runner.os == 'Windows'
147
196
run : |
148
- $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\windows "
197
+ $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\win32 "
149
198
$env:Path = "$env:USERPROFILE\.poetry\bin;$($env:PATH)"
199
+ $env:PATH = "C:\msys64\mingw64\bin;$($env:PATH)"
150
200
echo "$env:Path" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
151
201
152
202
- name : Install manim
153
203
run : |
154
- poetry config installer.modern-installation false
204
+ poetry config experimental.new-installer false
155
205
poetry install
156
206
157
207
- name : Run tests
158
208
run : |
159
- poetry run python -m pytest
209
+ poetry run pytest
160
210
161
211
- name : Run module doctests
162
212
run : |
163
- poetry run python -m pytest -v -- cov-append --ignore-glob="*opengl*" --doctest-modules manim
213
+ poetry run pytest -- cov-append --doctest-modules -- ignore-glob="*opengl*" manim
164
214
165
215
- name : Run doctests in rst files
166
216
run : |
167
- cd docs && poetry run make doctest O=-tskip-manim
217
+ cd docs && pip install -r requirements.txt && poetry run make doctest O=-tskip-manim
218
+
219
+ - name : Upload coverage
220
+ uses : codecov/codecov-action@v1
0 commit comments