Pylons / pyramid-cookiecutter-starter

A Cookiecutter (project template) for creating a Pyramid starter project with choices for template language (Jinja2, Chameleon, or Mako), persistent backend (none, SQLAlchemy with SQLite, or ZODB), and mapping of URLs to routes (URL dispatch or traversal)
95 stars 53 forks source link

Switch to GitHub Actions from Travis-CI and Appveyor #94

Closed stevepiercy closed 3 years ago

stevepiercy commented 3 years ago

Well, ubuntu passes, but macos builds fail for zodb as a backend, which in turn causes the remaining builds to be cancelled. See https://github.com/Pylons/pyramid-cookiecutter-starter/runs/1416175919?check_suite_focus=true#step:5:18

subprocess.CalledProcessError: Command '['/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pytest-of-runner/pytest-0/test_zodb_jinja2_0/bin/python', '-m', 'pytest', '-q']' died with <Signals.SIGILL: 4>.

I'm looking into the specific error message, but I don't have high hopes that I will figure out this one. Could I get an assist from someone else?

stevepiercy commented 3 years ago

Really weird. Only the build for macos/py38 failed. So I excluded it and all the jobs passed. Maybe it was just a weird quirk, so I put it back in, but that confirmed that only this combination fails. I have excluded it for now. Ready for review.

digitalresistor commented 3 years ago

We should figure out if we can replicate the issue locally, and if so what the fix could be. We don't want to just ignore that error.

stevepiercy commented 3 years ago

I tried running tox -e py38 on macos 10.15, and it passed.

@bertjwregeer do you mean trying to get this to run locally? https://github.com/actions/runner

I also searched both Python's and GitHub Actions' bug trackers, but came up empty.

digitalresistor commented 3 years ago

subprocess.CalledProcessError: Command '['/private/var/folders/24/8k48jl6d249_n_qfxwsl6xvm0000gn/T/pytest-of-runner/pytest-0/test_zodb_chameleon_0/bin/python', '-m', 'pytest', '-q']' died with <Signals.SIGILL: 4>.

means the process died because it tried to execute an instruction the processor didn't understand.

I don't understand why Python 3.8 is the only one affected.

stevepiercy commented 3 years ago

I don't understand why Python 3.8 is the only one affected.

Me neither. ☹️ It does not make sense that it would pass on Ubuntu and Windows but not macOS for Python 3.8. I compared the GHA logs between macOS/py38 and macOS/py39. All installed Python packages are identical.

The three failing tests in GHA involved ZODB. I do not know whether ZODB on Python 3.8.6 and macOS was problematic, but if it was, then it would have failed on my mac, too. I know that both Zope and Plone orgs are seriously considering where to migrate their CI, so maybe they will also switch to GHA, discover a problem with one of their packages and be able to resolve it. ¯\_(ツ)_/¯

We could:

  1. Do nothing. Not good because we don't have Travis available to do building and testing since we maxed out our minutes and Travis has not responded to my request to increase credits for the Pylons org.
  2. Hold off merging this PR until someone discovers why it fails only on macOS/py38. See 1.
  3. Merge this PR as is. Continue to exclude macOS/py38, and try from time to time to restore it.

I'd vote for option 3.