Skip to content

Enable AppVeyor Windows CI testing.#2755

Merged
astrofrog merged 17 commits into
astropy:masterfrom
Cadair:testing/app_veyor
Dec 19, 2014
Merged

Enable AppVeyor Windows CI testing.#2755
astrofrog merged 17 commits into
astropy:masterfrom
Cadair:testing/app_veyor

Conversation

@Cadair

@Cadair Cadair commented Jul 16, 2014

Copy link
Copy Markdown
Member

This PR adds the files needed to use AppVeyor to do CI testing of Astropy under windows (Server 2012 R2). The build matrix is smaller than your travis one but also uses miniconda, and the mingw compiler available through conda on windows.

I have enabled Python 2.6, 2.7 and 3.4 on Numpy 1.8.1 and 1.7.1 (not on 3.4).

I switched it on for my fork, and the first builds can be seen here: https://ci.appveyor.com/project/Cadair/astropy.

AppVeyor integrates into GH in the same way Travis does, however the API on GH's side is not smart enough, so the build status only shows for the last build to report.

@Cadair

Cadair commented Jul 16, 2014

Copy link
Copy Markdown
Member Author

There appears to be some build issue that I don't understand, https://ci.appveyor.com/project/Cadair/astropy/build/1.0.3/job/rxricru3yvqasfty#L953

ping @embray @astrofrog

@embray

embray commented Jul 16, 2014

Copy link
Copy Markdown
Member

Awesome--thanks for getting this started. I'll take a look in a bit.

@astrofrog

Copy link
Copy Markdown
Member

@astrofrog

Copy link
Copy Markdown
Member

Ok, so it's working now (there's a bug in Python 3 that stops it from working there, see above) but it segfaults on one of the tests, as previously found on a different machine: #2100

@Cadair

Cadair commented Jul 16, 2014

Copy link
Copy Markdown
Member Author

Seems that the python 3 build error is, as pointed out by @astrofrog, was a known issue.

The build completes ok under Python 2.x (https://ci.appveyor.com/project/Cadair/astropy/build/job/5j4em4lrnmdr24g0) but then segfaults as known about in #2100.

@astrofrog

Copy link
Copy Markdown
Member

Just to re-iterate what I said off-github. This is really awesome and is going to really help with the Windows side of things. Thanks @Cadair!

Now all we need is for #2100 to be fixed so we can get another green badge :)

@astrofrog

Copy link
Copy Markdown
Member

@Cadair - I know you can't hide appveyor.yml, but could you rename anaconda-install.ps1 to .anaconda-install.ps1 and update the yml file accordingly?

@Cadair

Cadair commented Jul 17, 2014

Copy link
Copy Markdown
Member Author

@astrofrog done.

@astrofrog

Copy link
Copy Markdown
Member

@Cadair - just out of interest, how do we stop AppVeyor from reporting the status back to the pull request? At the moment GitHub can't cope with two statuses and I think we want to keep Travis as being the main one.

@mwcraig

mwcraig commented Aug 9, 2014

Copy link
Copy Markdown
Member

@Cadair -- interesting situation. You are, of course, right that astropy compiles with mingw.

I started playing with your branch and first reproduced the error you are seeing, and the tests stop when that error is hit (at https://ci.appveyor.com/project/mwcraig/astropy/build/1.0.10#L1777).

If I drop mingw and compile instead with MSVC (by including the CMD_IN_ENV stuff) then the tests run to completion, though 3 of them fail (https://ci.appveyor.com/project/mwcraig/astropy/build/1.0.13#L2143).

The first fail, of a fits uint8 test, looks like it also happens in the mingw build (see line 1770 of that build).

So I guess the question is which compilation approach to take...or maybe which compilation chain should be supported? I think #2100 is actually a compilation issue, not a code issue (see comment over there).

@astrofrog

Copy link
Copy Markdown
Member

As a side note, I've been playing with the GitHub API and it should be possible to make it show a status such as the current one (I changed this one manually but it should be possible to set up a webapp to do it automatically)

@mwcraig

mwcraig commented Aug 10, 2014

Copy link
Copy Markdown
Member

Wow, that would be awesome!

@mwcraig

mwcraig commented Aug 10, 2014

Copy link
Copy Markdown
Member

Incidentally, I found this: http://help.appveyor.com/discussions/suggestions/204-cooperate-with-other-ci-in-same-gihub-repo

Would it be worth contacting GitHub about a change? The part of the GitHub API mentioned in this discussion is no longer provisional: https://developer.github.com/changes/2014-07-09-status-contexts-are-official/

@Cadair

Cadair commented Aug 10, 2014

Copy link
Copy Markdown
Member Author

@astrofrog you could use that combined status API to merge the commit reports? @mwcraig yeah I think this is worth taking to GH about, they probably have it on their radar.

@astrofrog

Copy link
Copy Markdown
Member

I already asked GitHub and they told me to write my own webapp so that's why I was working on it ;) I should have something functional by tomorrow (@Cadair has been helping me try it out).

@mwcraig

mwcraig commented Aug 12, 2014

Copy link
Copy Markdown
Member

An FYI from the conda mailing list regarding build on windows with conda (and the reason that python setup.py test uses mingw even though conda build uses MSVC):

So Ilan just explained to me that the difference here is the libpython
package. Anaconda comes with it, but by default, it is not installed
into the build environment when you do a conda build. If libpython is
installed, distutils will use mingw. Otherwise, it will use Visual
Studio. If you want to build with mingw with conda build, add
libpython as a build dependency. If you want to not build with it
outside of conda build, either set the compiler manually, or conda
remove libpython.

We should definitely document this better.

Aaron Meurer

@astrofrog

Copy link
Copy Markdown
Member

Oh look at the status! :) That was automated, courtesy of http://github-multi-status.herokuapp.com

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig @Cadair - any idea what's up with the AppVeyor failure? @mwcraig - I think your builds were passing, right?

@mwcraig

mwcraig commented Aug 12, 2014

Copy link
Copy Markdown
Member

@astrfrog -- awesome app! I think the fails will be fixed once my latest PR on @Cadair's PR is merged.

@Cadair

Cadair commented Aug 14, 2014

Copy link
Copy Markdown
Member Author

@mwcraig I merged your PR and rebased, so we should be down to only the last few fails now.

@astrofrog

Copy link
Copy Markdown
Member

One thing which I think would be worth thinking about (and I guess we'll see from experience once we use it) is whether Appveyor can keep up with all the pull requests we do - Travis is already on the slow side on some days, and appveyor only has one simultaneous job it seems? If it ends up being too slow then we could consider running the build only on master (but let's see first how well it does with pull requests)

@Cadair

Cadair commented Aug 14, 2014

Copy link
Copy Markdown
Member Author

@astrofrog it also seems that you can't restart builds on AppVeyor, so for SunPy I am making it a more "squishy" requirement for the build to pass before merging.

@astrofrog

Copy link
Copy Markdown
Member

@embray - it looks like there are some genuine failures on Windows - one in astropy.io.fits and three in doctests: https://gist.github.com/astrofrog/00facc1267ff0e218475

For the last one I'm guessing we want to add a +FLOAT_CMP but for the others, you might know the best way to fix these?

@astrofrog

Copy link
Copy Markdown
Member

Interestingly the tests do pass on 32-bit Windows with Python 2.7.

@embray

embray commented Aug 14, 2014

Copy link
Copy Markdown
Member

I don't fully understand the context, but it seems to have something to do with platform.architecture()[0] == '64bit' returning True, although really maybe it shouldn't. Or at least, a different check should be used. Because something in there wasn't compiled for 64-bit support.

@Cadair

Cadair commented Dec 19, 2014

Copy link
Copy Markdown
Member Author

IT IS GREEN

@astrofrog

Copy link
Copy Markdown
Member

🎆

astrofrog added a commit that referenced this pull request Dec 19, 2014
Enable AppVeyor Windows CI testing.
@astrofrog astrofrog merged commit 6716efc into astropy:master Dec 19, 2014
@Cadair

Cadair commented Dec 19, 2014

Copy link
Copy Markdown
Member Author

woop!

@Cadair

Cadair commented Dec 19, 2014

Copy link
Copy Markdown
Member Author

Issues for all tests other than the HDF5 ones need opening.

@astrofrog

Copy link
Copy Markdown
Member

@Cadair or @cdeil - can you see to opening these issues before we forget? Thanks! 😄

@cdeil

cdeil commented Dec 19, 2014

Copy link
Copy Markdown
Member

I've filed a new issue so that we don't forget about these skipped tests: #3242

@embray

embray commented Dec 30, 2014

Copy link
Copy Markdown
Member

Related to this, is it possible to re-run a build on AppVeyor, and if so can somebody add for me the permissions I would need to do that (since apparently I can't, at the moment).

@mwcraig

mwcraig commented Jan 1, 2015

Copy link
Copy Markdown
Member

@embray -- yes, it is possible to restart or halt appveyor builds. I can add you as an appveyor collaborator, I think. Can you send me your email address?

@embray

embray commented Jan 12, 2015

Copy link
Copy Markdown
Member

I apparently have an appveyor account @embray; should be good enough, no?

@mwcraig

mwcraig commented Jan 12, 2015

Copy link
Copy Markdown
Member

@embray -- I just added you as an administrator to the astropy team on appveyor, please let me know if it worked. You should see a cancel button now.

@astrofrog

Copy link
Copy Markdown
Member

@mwcraig - can you add me as an admin too? otherwise I have to log in with the astropy.team account.

@mwcraig

mwcraig commented Jan 12, 2015

Copy link
Copy Markdown
Member

@astrofrog -- done, added myself too. Anyone else who should be on?

@astrofrog

Copy link
Copy Markdown
Member

Thanks! Well anyone who is a core maintainer in principle (https://github.com/orgs/astropy/teams/astropy-core-maintainers) but don't think all have an appveyor account.

@mwcraig

mwcraig commented Jan 12, 2015

Copy link
Copy Markdown
Member

There doesn't seem to be a core maintainers team...do you mean owners?

@astrofrog

Copy link
Copy Markdown
Member

Ah, maybe it can't be publicly seen, but if you click the link in my previous comment it should take you directly there (basically people with write-access to the repo)

@mwcraig

mwcraig commented Jan 12, 2015

Copy link
Copy Markdown
Member

I think the link maybe only works for some people? I get a 404: http://note.io/1xVBWQS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants