container.cmd 1.4 KB

1234567891011121314151617181920212223242526272829303132333435
  1. @echo off
  2. for %%p in ( pypy3 pypy python3 python ) do (
  3. %%p --version >nul 2>&1 && (
  4. set python=%%p
  5. goto found
  6. )
  7. )
  8. echo unable to run Hy test -- seems this image does not contain Python? >&2
  9. exit /b 1
  10. :found
  11. %python% --version >nul 2>&1 || exit /b %errorlevel%
  12. rem Hy is complicated, and uses Python's internal AST representation directly, and thus Hy releases usually lag behind a little on major Python releases (and we don't want that to gum up our tests)
  13. rem see https://github.com/hylang/hy/issues/1111 for example breakage
  14. rem also, it doesn't always support older (still supported) Python versions; https://github.com/hylang/hy/pull/2176 (3.6 support removal)
  15. %python% -c "import sys; exit((sys.version_info[0] == 3 and (sys.version_info[1] >= 11 or sys.version_info[1] <= 6)) or sys.version_info[0] > 3 or sys.version_info[0] == 2)" || (
  16. echo skipping Hy test -- not allowed on Python 3.11+ ^(yet!^), or on Python 3.6 or lower >&2
  17. rem cheaters gunna cheat
  18. type expected-std-out.txt
  19. exit /b 0
  20. )
  21. rem ensure pip does not complain about a new version being available
  22. set PIP_DISABLE_PIP_VERSION_CHECK=1
  23. rem or that a new version will no longer work with this python version
  24. set PIP_NO_PYTHON_VERSION_WARNING=1
  25. rem https://pypi.org/project/hy/#history
  26. rem https://pypi.org/project/hyrule/#history
  27. pip install -q "hy==1.0a4" "hyrule==0.1" || exit /b %errorlevel%
  28. hy ./container.hy || exit /b %errorlevel%
  29. exit /b 0