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-
6316 test :
6417 runs-on : ${{ matrix.os }}
6518 env :
6619 DISPLAY : :0
6720 PYTEST_ADDOPTS : " --color=yes" # colors in pytest
68- GLCONTEXT_WIN_LIBGL : C:\msys64\mingw64\bin\opengl32.dll
6921 strategy :
7022 fail-fast : false
7123 matrix :
72- os : [ubuntu-latest , macos-latest, windows-latest]
73- python : ['3.7', '3.8', '3.9', '3.10' ]
24+ os : [ubuntu-22.04 , macos-latest, windows-latest]
25+ python : ["3.8", "3.9", "3.10", "3.11" ]
7426
7527 steps :
7628 - name : Checkout the repository
77- uses : actions/checkout@v2
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
7835
7936 - name : Setup Python ${{ matrix.python }}
80- uses : actions/setup-python@v2
37+ uses : actions/setup-python@v4
8138 with :
8239 python-version : ${{ matrix.python }}
83-
84- - name : Install Poetry
85- run : |
86- pip install --user poetry
40+ cache : " poetry"
8741
8842 - name : Setup macOS PATH
8943 if : runner.os == 'macOS'
@@ -94,33 +48,38 @@ jobs:
9448 shell : bash
9549 id : cache-vars
9650 run : |
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') }}
51+ echo "date=$(/bin/date -u "+%m%w%Y")" >> $GITHUB_OUTPUT
10552
10653 - name : Install and cache ffmpeg (all OS)
107- uses : FedericoCarboni/setup-ffmpeg@v1.1.0
54+ uses : FedericoCarboni/setup-ffmpeg@v2
10855 with :
10956 token : ${{ secrets.GITHUB_TOKEN }}
11057 id : setup-ffmpeg
11158
11259 - 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)
11374 if : runner.os == 'Linux'
11475 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
11776 # start xvfb in background
11877 sudo /usr/bin/Xvfb $DISPLAY -screen 0 1280x1024x24 &
11978
12079 - name : Setup macOS cache
80+ uses : actions/cache@v3
12181 id : cache-macos
12282 if : runner.os == 'macOS'
123- uses : actions/cache@v2
12483 with :
12584 path : ${{ github.workspace }}/macos-cache
12685 key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
@@ -159,20 +118,12 @@ jobs:
159118 - name : Setup Windows cache
160119 id : cache-windows
161120 if : runner.os == 'Windows'
162- uses : actions/cache@v2
121+ uses : actions/cache@v3
163122 with :
164123 path : ${{ github.workspace }}\ManimCache
165124 key : ${{ runner.os }}-dependencies-tinytex-${{ hashFiles('.github/manimdependency.json') }}-${{ steps.cache-vars.outputs.date }}-1
166125
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
126+ - uses : ssciwr/setup-mesa-dist-win@v1
176127
177128 - name : Install system dependencies (Windows)
178129 if : runner.os == 'Windows' && steps.cache-windows.outputs.cache-hit != 'true'
@@ -182,7 +133,7 @@ jobs:
182133 echo "Install Tinytex"
183134 Invoke-WebRequest "https://github.com/yihui/tinytex-releases/releases/download/daily/TinyTeX-1.zip" -O "$($env:TMP)\TinyTex.zip"
184135 Expand-Archive -LiteralPath "$($env:TMP)\TinyTex.zip" -DestinationPath "$($PWD)\ManimCache\LatexWindows"
185- $env:Path = "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\win32 ;$($env:PATH)"
136+ $env:Path = "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\windows ;$($env:PATH)"
186137 tlmgr update --self
187138 foreach ($c in $tinyTexPackages){
188139 $c=$c.Trim()
@@ -194,27 +145,23 @@ jobs:
194145 - name : Add Windows dependencies to PATH
195146 if : runner.os == 'Windows'
196147 run : |
197- $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\win32 "
148+ $env:Path += ";" + "$($PWD)\ManimCache\LatexWindows\TinyTeX\bin\windows "
198149 $env:Path = "$env:USERPROFILE\.poetry\bin;$($env:PATH)"
199- $env:PATH = "C:\msys64\mingw64\bin;$($env:PATH)"
200150 echo "$env:Path" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
201151
202152 - name : Install manim
203153 run : |
204- poetry config experimental.new-installer false
154+ poetry config installer.modern-installation false
205155 poetry install
206156
207157 - name : Run tests
208158 run : |
209- poetry run pytest
159+ poetry run python -m pytest
210160
211161 - name : Run module doctests
212162 run : |
213- poetry run pytest -- cov-append --doctest-modules -- ignore-glob="*opengl*" manim
163+ poetry run python -m pytest -v -- cov-append --ignore-glob="*opengl*" --doctest-modules manim
214164
215165 - name : Run doctests in rst files
216166 run : |
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
167+ cd docs && poetry run make doctest O=-tskip-manim
0 commit comments