Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check for Appveyor.yml for windows CI #76

Closed
szabgab opened this issue Aug 2, 2017 · 13 comments
Closed

Check for Appveyor.yml for windows CI #76

szabgab opened this issue Aug 2, 2017 · 13 comments
Assignees

Comments

@szabgab
Copy link

szabgab commented Aug 2, 2017

If possible also display the status of the Windows build.

@briandfoy
Copy link

briandfoy commented Aug 3, 2017

You also need to check for .appveryor.yml (which leading dot). For instance, my PrettyDump module has that filename and is tested on AppVeyor but does not show such on modules.perl6.org.

@briandfoy
Copy link

Pull request #77 sent.

But when I tested locally, it still reported PrettyDump as "unknown" even though the last status is "passing".

@zoffixznet
Copy link

But when I tested locally, it still reported PrettyDump as "unknown" even though the last status is "passing".

At the moment it reports all statuses as unknown. A PostProcessor to actually fetch the status from AppVeyor's API still needs to be implemented: https://irclog.perlgeek.de/perl6/2017-08-02#i_14957533

@briandfoy
Copy link

I've started a processor and sent PR #78. Don't merge it blindly though!

@zoffixznet
Copy link

zoffixznet commented Aug 3, 2017

PR merged however for some mystery (OK, now I see it's cause full rebuild didn't happen; but new mystery is "why") reason the app should've mentioned doing appveyor stuff in the log (I'm tailing the current run) but it doesn't, despite the git log showing it got all the recent commits.

I ran a local copy of the site and the appveyor stuff worked but the API URL was a 404. I managed to fix that by adding a recordsNumber param and locally the appveyor now works.

The last build on live site is currently at Processing dist 461 of 867. After it finishes it should fetch my commit and rebuild everything again and I hope whatever that mystery reason is will be gone and appveyor will work.

untitled

zoffixznet added a commit that referenced this issue Aug 4, 2017
For some reason it appears to never full rebuild even when commit
message has `[REBUILD]` in it.

Temporarily force the value to 1, to start eliminating suspects.

Part of #76
@zoffixznet
Copy link

No love. It still fails to print in the log that it's doing a full rebuild. I now made the shell script always use full rebuild to see if that fixes anything. Gonna dig into this more tomorrow.

@zoffixznet
Copy link

I killed everything, undid the always-rebuild, and it magically started working.

I now see AppVeyor status on the live site,, so this issue is now resolved. Thanks all.

@briandfoy
Copy link

Thanks everyone!

@szabgab
Copy link
Author

szabgab commented Aug 4, 2017

🍪 🍰 🍷

@szabgab
Copy link
Author

szabgab commented Aug 4, 2017

Hmm, the strange thing is that the number of modules that have Appveyor configured (reported in the text at the top of http://modules.perl6.org/ ) went down from 40 to 38 since yesterday. Are maybe the 'unknown' reports marked as 'not set up' now?

@zoffixznet
Copy link

'unknown' reports marked as 'not set up' now

Yeah, that's it. I managed to repro it locally too. On full rebuild it gets logged as unknown, but when going through the "cached" update it gets changed to not set up.

I'm guessing $dist->{_builder}{has_appveyor} doesn't always get correctly set and so the status gets tossed on this line.

I'll fix it after work, in about 12 hours.

zoffixznet added a commit that referenced this issue Aug 4, 2017
... went going through half-build due to no new commits

Fixes #76 (comment)
@zoffixznet
Copy link

zoffixznet commented Aug 4, 2017

OK, I'm re-opening this Issue, as I found a problem I don't know a solution for.

First, the unknown stuff mentioned above along with several other issues, including yesterday's mystery problem, was fixed in a bunch of commits made today. The site now shows appveyor statuses for 58 instead of 38 dists.

However, turns out the github-username/github-repo-name do not map exactly to appveyor's username/projectname (e.g. this module name doesn't have an extra hyphen on appveyor and this one has a different username on appveyor).

For fetching the build status itself, I managed to work around that problem by fetching an SVG badge and parsing it. The badge URL has special feature that you can use github/ in the URL to indicate the user/repo names are that of a GitHub repo.

I googled around for some sort of the same feature to get the project page we can link the status link to, but appveyor's staff in January said that feature isn't available:

Do you mean default AppVeyor page and not badge? If yes, we do not provide this URL route, because we don't know what to do when more than one AppVeyor project uses single repository. This is very common.

I tried dumping HTTP headers from the status badges and looking at API docs, but I don't see any way for us to figure out the link to AppVeyor project page, if all we have a is a GitHub repo URL and its contents.

Anyone have any ideas?

@zoffixznet zoffixznet reopened this Aug 4, 2017
@zoffixznet
Copy link

zoffixznet commented Aug 6, 2017

Fixed it to "good enough" levels in 444c586 by doing:

  • Try to fetch status from API using GitHub's user/repo
    for AppVeyor user/slug; if success, that's the AppVeyor url
  • If that fails, fetch status from badge and rake repo's README
    for the URL to AppVeyor project and use that
  • If that fails, just direct AppVeyor URL to dist repo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants