1313 - main
1414
1515jobs :
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+
1663 test :
1764 runs-on : ${{ matrix.os }}
1865 env :
1966 DISPLAY : :0
2067 PYTEST_ADDOPTS : " --color=yes" # colors in pytest
68+ GLCONTEXT_WIN_LIBGL : C:\msys64\mingw64\bin\opengl32.dll
2169 strategy :
2270 fail-fast : false
2371 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' ]
2674
2775 steps :
2876 - 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
3578
3679 - name : Setup Python ${{ matrix.python }}
37- uses : actions/setup-python@v4
80+ uses : actions/setup-python@v2
3881 with :
3982 python-version : ${{ matrix.python }}
40- cache : " poetry"
83+
84+ - name : Install Poetry
85+ run : |
86+ pip install --user poetry
4187
4288 - name : Setup macOS PATH
4389 if : runner.os == 'macOS'
@@ -48,38 +94,33 @@ jobs:
4894 shell : bash
4995 id : cache-vars
5096 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') }}
52105
53106 - name : Install and cache ffmpeg (all OS)
54- uses : FedericoCarboni/setup-ffmpeg@v2
107+ uses : FedericoCarboni/setup-ffmpeg@v1.1.0
55108 with :
56109 token : ${{ secrets.GITHUB_TOKEN }}
57110 id : setup-ffmpeg
58111
59112 - 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)
74113 if : runner.os == 'Linux'
75114 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
76117 # start xvfb in background
77118 sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
78119
79120 - name : Setup macOS cache
80- uses : actions/cache@v3
81121 id : cache-macos
82122 if : runner.os == 'macOS'
123+ uses : actions/cache@v2
83124 with :
84125 path : ${{ github.workspace }}/macos-cache
85126 key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
@@ -118,12 +159,20 @@ jobs:
118159 - name : Setup Windows cache
119160 id : cache-windows
120161 if : runner.os == 'Windows'
121- uses : actions/cache@v3
162+ uses : actions/cache@v2
122163 with :
123164 path : ${{ github.workspace }}\ManimCache
124165 key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
125166
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
127176
128177 - name : Install system dependencies (Windows)
129178 if : runner.os == 'Windows' && steps.cache-windows.outputs.cache-hit != 'true'
@@ -133,7 +182,7 @@ jobs:
133182 echo "Install Tinytex"
134183 Invoke-WebRequest "https://github.com/yihui/tinytex-releases/releases/download/daily/TinyTeX-1.zip" -O "$($env:TMP)\TinyTex.zip"
135184 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)"
137186 tlmgr update --self
138187 foreach ($c in $tinyTexPackages){
139188 $c=$c.Trim()
@@ -145,23 +194,27 @@ jobs:
145194 - name : Add Windows dependencies to PATH
146195 if : runner.os == 'Windows'
147196 run : |
148- $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\windows "
197+ $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\win32 "
149198 $env:Path = "$env:USERPROFILE\.poetry\bin;$($env:PATH)"
199+ $env:PATH = "C:\msys64\mingw64\bin;$($env:PATH)"
150200 echo "$env:Path" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
151201
152202 - name : Install manim
153203 run : |
154- poetry config installer.modern-installation false
204+ poetry config experimental.new-installer false
155205 poetry install
156206
157207 - name : Run tests
158208 run : |
159- poetry run python -m pytest
209+ poetry run pytest
160210
161211 - name : Run module doctests
162212 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
164214
165215 - name : Run doctests in rst files
166216 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