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

New round of CI improvements/fixes #131

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

still-flow
Copy link
Contributor

@still-flow still-flow commented Sep 29, 2020

Some small fixups:

  • exit->quit in gdb cmdlist (funny that it sorta worked regardless)
  • remove unnecessary backtrace gdb cmd (the file and line at fault are already reported without it)
  • remove mymake output buffering for all platforms (should help with on-the-fly CI logs)
  • remove brew update step (to address Add -Wimplicit-fallthrough #69)
  • move from to-be-deprecated emscripten container

OUTDATED (see below for details):

Now some stuff in need of more explanation.

Switch to podman instead of docker: this one is up to debate, but several articles state that one is "better" than the other. I'll be honest and say that I'm not really sure whether all that benefits this project whatsoever, but then again we only use docker in the simplest possible way.

Add a helper log-saver workflow: addressing the issue raised by @Quuxplusone in #117, this should be a temporary workaround until Github perhaps introduces a better way of doing this. For now, I had to create a helper workflow that's triggered after the main one completes, and fetches its logs using Github's API, and uploads them as an artifact. It also displays a link back to the main run in the "annotations" section -- it'd be better if the main run could link to the helper workflow run instead, but there's a chicken-and-egg problem: you can only use the API query after the workflow completes, and by that point AFAIK you can't modify its "executive overview" output. Example output. Btw, feel free to scrutinize the hell out of that one -- these rudimentary scripts were hacked together only to the point of working, not to the point of being "correct".

Note that the CI run for this PR won't produce any log archives yet, because the corresponding .yml file has to exist on master.

Copy link
Contributor

@Quuxplusone Quuxplusone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM mod my comments. The only really really important one is the first one, about updating .travis.yml with the new Docker image and/or s/docker/podman/ so that it stays in sync with the Github workflow.

.github/workflows/github_ci.yml Outdated Show resolved Hide resolved
.github/workflows/github_ci_logs.yml Outdated Show resolved Hide resolved
.github/workflows/github_ci_logs.yml Outdated Show resolved Hide resolved
.github/workflows/install_deps.sh Outdated Show resolved Hide resolved
mymake.cpp Outdated Show resolved Hide resolved
@still-flow
Copy link
Contributor Author

Addressed all Github-related stuff. Now it remains to update Travis and write some reports to GH support (about brew update and log recycle period as well).

@still-flow
Copy link
Contributor Author

Of course, it has only now occurred to me to check this, but actually build artifacts also expire on a 90-day basis. Oops.

Therefore, either the new helper workflow is entirely useless and has to be nuked, or a new storage solution has to be found. Either way, this'll need some more thought.

@still-flow
Copy link
Contributor Author

Reports to Github support both done. Will post the responses if and when they occur.

@still-flow
Copy link
Contributor Author

Updated Travis config (loosely) in sync with the Github one. Also excised the log-saver workflow for now.

.travis.yml Outdated Show resolved Hide resolved
.travis.yml Outdated Show resolved Hide resolved
.travis/Brewfile.travis Outdated Show resolved Hide resolved
@still-flow
Copy link
Contributor Author

still-flow commented Oct 1, 2020

Workflow-cancelling action doesn't seem to function properly. I guess that's another ticket for GH support right there -- asking for an official way to do so.

for Github CI:
- exit->quit in gdb cmdlist
- remove unnecessary backtrace gdb cmd
- remove mymake output buffering for all platforms
- remove `brew update` step
- move from to-be-deprecated emscripten container

also update Travis config in sync:
- try and skip `brew update`
@still-flow
Copy link
Contributor Author

So, podman turned out to be slower on GH and downright not working well on Travis. Rolled that back.

In better news, forcing no brew update on Travis seems to have sped up OSX builds somewhat.

@still-flow
Copy link
Contributor Author

still-flow commented Oct 13, 2020

On log expiration: good news is that Github listened (not to imply that we were the only ones to complain). The fly in the ointment is that for free public repos 90 days is the upper retention limit :/. Can't blame them too much I guess: all that storage can add up quickly.

Besides possible endemic workarounds, I wanted to try out Gitlab's reportedly-celebrated CI anyways. Will report if it's any good.

@zenorogue
Copy link
Owner

The CI has been broken for a long time, which was annoying. I have removed the broken stuff:

  • removed TravisCI badges and YML file
  • disabled testing the Windows build using gdb
  • disabled testing macos-latest (there was some problem during the libraries installation due to deprecation)
  • disabled Android tests (seems some problem with the build system?)
  • disabled emscripten tests (actually looks like some problem with the source code, but removed anyway for now)

Also fixed some warnings which caused some Linux/Windows checks to fail.

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

Successfully merging this pull request may close these issues.

None yet

3 participants