-
-
Notifications
You must be signed in to change notification settings - Fork 118
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
WIP: Enable a github actions build #1415
base: master
Are you sure you want to change the base?
Conversation
99c729a
to
9c09e27
Compare
OK, so. @mate-desktop/core-team do we want something like this? I hear that we have Travis credits issues, so maybe we can unload some of this to GitHub Actions? I don't know much of anything about it, but it seems to work, and seems to allow a lot of things. |
I don't know anything about it, but if we can do this inside Github it will certainlt help our travis situation
|
From which travis-CI issues did you heard exactly? |
Btw. i reduced the travis CI build time about 50% 2 weeks ago. |
Build credits, I think it was you mentioning we're needing to ask for renewal all the time… I'm happy if it's not an issue (anymore) though.
For me as well, minus the mentioned credits issue, which I might not be up-to-date about.
Yeah I know it's complex, and this here is just a first attempt in case it can be useful.
No, I don't. But I certainly would even less want CI to stop working one day out of the blue because we run out of credits or alike. But again, if you tell me I'm mistaken and it's not an issue, I just lost a bit of time and it's alright.
Only if it has actual value, because maintenance has a cost. Feel free to dump this, I'm not emotional about it 😄 |
I will explain it again , (hopefully last time)
It is understandable that travis-Ci wants to control the sponsored build time. I don't think that is an issue unless the team is too lazy to write an email with one sentence.
No, only you can dump your ideas. I don't do that. Any way, beside from my concerns and the question who like to do this rewrite for every repository, Maybe it make sense to replace debian build from travis-ci with a github-actions build to reduce build time again, I agree with you not to use ccpscheck builds.... who needs this? PS: I disabled travis-CI temporarily for mate-panel in case you want to work on this PR. |
It's (probably) OK as long as we have somebody
Well, that's kind of one of my concerns: we're disabling things because we can't afford them. No, we shouldn't waste resources, but we shouldn't be enticed to lower QA either.
IIUC, this means that we don't run CI on pull requests made outside of the mate-desktop repository, right? This is an issue IMO, as it limits the checks we do on non-member PRs.
One other option, if I understand the settings correctly, could be to keep building PRs, but either
It (currently) is free for public repositories: "GitHub Actions usage is free for standard GitHub-hosted runners in public repositories, and for self-hosted runners." However, we of course can't be sure what the future holds.
Well, if it makes sense to unload part of it only, sure.
Did I say anything about disabling it? Admittedly I don't use it, but I have just moved it to a separate job in order to run it concurrently, and have the results easier to reach. If nobody uses it maybe we can remove it though, as it's never a blocking check, so the only value is if people actually look at the results.
For now I used a plain runner without adding a docker layer, and selected "ubuntu-latest", which currently is Ubuntu 22.04.3. But docker images should be fairly easy to use as well, universal-ctags seems to make use of a lot of them.
You shouldn't have to do this I think, I specifically made it on my fork because I remembered you telling me we didn't build those. And I indeed don't see Travis in the checks list. |
BTW: I will not be pursuing this unless it's something the team desires. As @raveit65 suggests, getting this working for all repositories is a significant undertaking, and I don't find this fun enough to do it if nobody else cares. |
One last thing to think about, regarding CI in general: it's useful for CI to be fast, so developers don't get frustrated or distracted. If you have CI results within a minute or two, it makes development faster in case an issue is found: the author might not have switched to another task, or not went to sleep, or whatever. I'm not saying that our CI is too slow for convenience ATM (it's pretty OK), but that making it faster (even if it means shorter jobs with a little more overall overhead) can be beneficial. Personal experience with CI results within a minute was a lot nicer than another experience where results would generally take an hour or more :) Admittedly the hour-long ones caught more issues in general (because of a huge project I was less familiar with), which didn't help frustration at waiting times, but it also meant that by the time the results came in I was doing something entirely different, and sometimes even went to sleep 'til next morning. Just some thoughts. |
It is written here and in several other reports. Writing docs is a big job, volunteers are wanted....
No, this doesn't have any impact,
No,
There is only one setting possible for master/stable and PR branches possible as far as i know from travis docs.
I read your comment in commit :-)
As i said it is possible that LTS releases do not use latest stable Mate releases after we made a new major release and than you need to build a mate dependency from git and not from docker image repositories.
Why you want want to test a github-CI configuration with travis-CI?
??? Which checklist. Edit: Now i see what you mean. |
Oh :) What I meant there was wondering whether the cppcheck run does need to be run after a successful build, or running it on a plain git clone enough. I guessed it was OK with a plain git clone, just adding the library dependencies to help with external declarations. OTOH, maybe it does matter for generated files? Not sure.
I don't, I just meant that I didn't think it was necessary to do anything for Travis not to run on this PR (see below).
Normally any check results (including Travis) show up in GitHub PR UI, both in the merge area "All checks have passed", and then "show all checks", or in the Checks tab.
Are you sure? I don't see any build for e.g. this PR in https://app.travis-ci.com/github/mate-desktop/mate-panel/builds From my understanding, this only works on the repo on which Travis is set up, e.g. for branches in mate-desktop/mate-panel, not any fork of it. So yes, it works for PR if we push the PR branch to the target repository, but not if we push it to a fork. Here (push to fork), it lists the 2 GitHub Actions, no Travis. OTOH, on 1413 (push to repo branch) it shows Travis CI - Branch. And on an older push-to-fork, we only have Travis CI - Pull Request, whereas on a same-era push-to-repo we have both PR and Branch. |
44051e5
to
77c9a05
Compare
Ohh, you're right, I tested this only with internal PR branches before i disabled Maybe it make sense to include archlinux build to github-actions? Archlinux was part of the origin travis config and disabled when travis-ci wasn't free anymore a while ago. Build dependencies are listed in .build.yml. |
Well, not, there's an alternative: we could ask everybody (including core team) to create PRs on their fork, so only the Travis PR build runs on PRs. It requires all of us to play along, but that's another option.
Yeah, I figured I could try and see how containers worked. Seemed easy enough, minus the fact that apparently we're root already, and sudo isn't available. Fine, but one has to know :)
Thanks!
Sure, will do.
Can't you? That's a bummer, I check the option allowing maintainers though…
I do have access. I'm not sure if we really should re-enable this right away, because it'd be better to either
What do you think?
Sure, IMO it makes sense to add any setup that adds value, and Arch is definitely both a fairly different setup, and a widely used one. |
7459a7e
to
470b5cc
Compare
At the moment we are only 5 active members who commit, so using a forked branch might be a interim solution. |
From my POV it doesn't have to be interim, and that's how I'm used to do things everywhere else. And normally GitHub even allows maintainers to push to PR branches in forks if the author allowed this in the PR (which is the default). So I'm not sure if there's any downside, minus perhaps a little more bandwidth usage as you'd push some more commits to your fork (as other's commits wouldn't be there already, so pushing your PR branch would sync this) -- but that should not be much, it's just the few commits, and it's entirely transparent otherwise.
Is it easy to do it per-branch? I'm afraid it's easy to forget as well, and probably would still run a first unwanted duplicate, wouldn't it? |
I enabled |
Travis-ci run nicely on this PR. I will disabled it again until this PR is ready go. |
5029465
to
009954e
Compare
Added, although I had a bit of a hard time with pacman, it works now. |
cc840d1
to
649764a
Compare
c40797e
to
cb395de
Compare
OK so apart from whether or not we should run scan-build, I think everything that was raised has been addressed. Cppcheck report has been improved a lot, but is quite slower now (5+ minutes, going from fastest to slowest); but I think the improved accuracy is worth it. |
@cwendling As i said before i can pretty well live without scanbuild. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
We're trying GitHub Actions for this one, no need for a duplicate.
It's not really something that usually needs be run everywhere, it should be pretty stable as long as the build system is properly set up. This can still be enabled back for all targets if needed.
Give it relevant -D/-I flags so it can perform more useful checks. This makes if slower, but hopefully more accurate and useful.
Teach cppcheck the C11 _Noreturn attribute.
cb395de
to
5267302
Compare
Any news on this one? |
No description provided.