Add GitHub CI workflow for cygwin
mkoeppe opened this issue · 35 comments
Using choco instead of apt-cyg because it is available out of the box on GitHub Actions, and can install cygwin unattended.
CC: @embray
Component: porting: Cygwin
Author: Matthias Koeppe
Branch/Commit: 85b3c3d
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/29295
Branch: u/mkoeppe/29106+ci
Author: Matthias Koeppe
Description changed:
---
+++
@@ -1 +1,2 @@
+Using choco instead of apt-cyg because it is available out of the box on [GitHub](../wiki/GitHub) Actions, and can install cygwin unattended.
This works pretty well already (https://github.com/mkoeppe/sage/runs/492908952?check_suite_focus=true)
Issues:
configureis run a second time at the beginning ofmake- a non-Cygwin
pythonis inPATHand is picked up bysage-system-python. This should really be fixed by #29090 ("configure forgets to check whether ANY Python is available on the system").
Tests at https://github.com/mkoeppe/sage/actions/runs/51902280
Branch pushed to git repo; I updated commit sha1. New commits:
d38b04b | git config --global core.symlinks true |
I see here in the log some probably known to Erik issue, crypt module does not build for py3
building '_crypt' extension
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wno-cast-function-type -Werror=implicit-function-declaration -I./Include -I/cygdrive/d/a/sage/sage/local/include -I. -I/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Include -I/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src -c /cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.c -o build/temp.cygwin-3.1.4-x86_64-3.7/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.o
gcc -shared -Wl,--enable-auto-image-base -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib -L. -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib -L. -L/cygdrive/d/a/sage/sage/local/lib -Wl,-rpath,/cygdrive/d/a/sage/sage/local/lib build/temp.cygwin-3.1.4-x86_64-3.7/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.o -L. -L/cygdrive/d/a/sage/sage/local/lib -L/usr/local/lib -L. -lpython3.7m -o build/lib.cygwin-3.1.4-x86_64-3.7/_crypt.dll
/usr/lib/gcc/x86_64-pc-cygwin/9.2.0/../../../../x86_64-pc-cygwin/bin/ld: build/temp.cygwin-3.1.4-x86_64-3.7/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.o: in function `crypt_crypt_impl':
/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.c:43: undefined reference to `crypt'
/cygdrive/d/a/sage/sage/local/var/tmp/sage/build/python3-3.7.3.p1/src/Modules/_cryptmodule.c:43:(.text+0x3a): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `crypt'
collect2: error: ld returned 1 exit status
maybe it's just a forgotten Cygwin package:
https://cygwin.com/packages/summary/libcrypt0.html ?
Branch pushed to git repo; I updated commit sha1. New commits:
b263ac3 | Run ci-cygwin.yml also on pull request |
oh, right, it should have been https://cygwin.com/packages/summary/libcrypt-devel.html
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
2034d61 | save pwd |
c4e44d1 | fixup, prepare log artifact |
193b699 | fixup |
b652a02 | use cygpath |
b8213bf | debug |
e2f25de | do not fail fast |
e56c8bd | Reset PATH so that only cygwin binaries are used |
5fc4dd7 | Simplify |
488fb74 | git config --global core.symlinks true |
85b3c3d | Run ci-cygwin.yml also on pull request |
Rebased on 9.1.beta8
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
what is the point of having minimal here, as it takes too long?
Even if it times out, it provides valuable testing of the build process for the early packages.
But I'm working on the refinement of this workflow using several stages
ok
Reviewer: Dima Pasechnik
Changed branch from u/mkoeppe/29106+ci to 85b3c3d