-
Notifications
You must be signed in to change notification settings - Fork 472
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
Improve CI pipeline and integration tests #911
Comments
You've been busy, love it! I'll go through these PRs and start reviewing/merging the ones with least dependencies. Two questions regarding integration-tests:
|
The topic is very annoying. Docker is simply not made for running multiple processes and monitoring them from a separate process (systemd)- there are solutions to start multiple processes in a container. But that won't help, because the container is used to simulate an operating system. The whole thing can only be solved by calling
All these changes run with Travis CI, Github workflow and locally on my ubuntu machine ( One issue remains open from my point of view. The test in which runlevel a service runs is not compatible with current linux versions. My knowledge of go is not great enough to investigate this. |
@dklimpel random question, are you on gophers slack by any chance? |
Which Linux (branch) is failing, I can checkout that brance and investigate next week. Wonder if it's a Goss bug, or working as intended. |
It is a problem with Debian and Ubuntu: Also on my local Ubuntu machine. |
Okay, thanks. I'll check them both out. Which PRs are next for documentation? #919? |
GitHub creates a workflow when push to master automatically. IMHO this is failing because this is a default job with Jekyll theme. Probably this can be disabled in project settings. https://github.com/goos-org/goss/settings/pages - Change to source "GitHub Action". Readthedocs should not need this, because it is working by triggers, I think. GitHub pages is not used here. |
Changed, I guess next PR to be merged will validate this? Also, please continue to use this issue to let me know the next PR in the chain. I find it a lot easier to track on here. This is an amazing level of work by the way, much appreciated. It's something I've wanted for a long time. Unfortunately, due to limited time I never got around to it, my focus tends to be:
|
Yes, it is. My suggestion for the next steps.
|
Unfortunately not. |
Hey @dklimpel , if you don't mind. Let me know on here the next PR that's ready and I'll review. This is an awesome amount of work you put it, it's greatly appreciated! |
To improve the code:
|
Holding off on merging more PRs until Travis oss credits are replenished. Don't want CI to get in a broken state with unclear traceability on what caused it. This is an awesome amount of work. Can't thank you enough for taking the time to do this. |
Ok. |
I think #928 can help. This enables unit tests with GitHub Pipeline. |
Using this as a central coordination point. What PRs are ready for merge, so I can start going through them. |
I would recommend finalizing a few topics before we take a look at the docker images.
|
Dealing with more travis-ci issues, waiting on support. Figured it's relevant to this issue given the work-effort here =) |
If you would like to run the integration tests with GHA: |
I have added a replacement of CentOS in: The creation of binarries for tags / releases is included there: IMHO this would be the last step to replace the functionalities of travis CI. After that, there will certainly be some clean-up work to do, such as renaming variables like "$TRAVIS_TAG". |
Travis-ci seems to be failing on rockylinux9 build, but I can't figure out the reason to be honest. Last good build: https://app.travis-ci.com/github/goss-org/goss/builds/271468694?serverType=git failing build: https://app.travis-ci.com/github/goss-org/goss/builds/271478309?serverType=git The git commit sha is the same, do you know of anything else that could have changed on the CI side between a regular build vs a release build? Also, I noticed this issue with GHA on releases: https://github.com/goss-org/goss/actions/runs/9982852891 Just putting all issues I've encountered so far in one comment. |
There is something going wrong with the user agent.
I can take a look deeper the next days. |
It is flaky or a problem with Travis. |
Odd, I reran the failed test like 5 times and the same error every time. Let me try pushing a new tag.. I wonder if travis has some logic to re-use the same flaky instance on retries. |
Oh, I see what the issue is! it's not travis. The test is written in a way that assumes that goss is always a dev build aka version 0.0.0, yet when a real build happens it fails due to it having a real version. |
Good catch! |
Ok, so I'm slightly confused on this one.. since it was goss v0.4.7 that had the user-agent change. I'm guessing something between the two versions changed where we no longer test against a CI build but rather the release build. Overall, this is a great change since we should be testing what we're releasing, just wondering if you know where this change was made.. didn't think we made much changes to travis-ci 🤷 |
I was also confused and do not know what the change was. There was no change at the code and no change to Travis. |
Possible next steps:
|
What is the best way to proceed with the new rockylinux image? Updating the apache version every week is certainly not a good option.
|
I upload the latest version. Does the script for building images work for rocky Linux out the box or do I need to tweak it. Also, does GHA support manual actions that are only triggered by a user, or do they always start from a git event? |
This scripts work out of the box:
But there is no condition for a specific image. All or nothing. And not all images are ready for building. See there: https://github.com/goss-org/goss/pull/901/files
|
Looping back here to coordinate outstanding PRs. Any particular order they need to be reviewed in. Feels like we're almost at the cut-over point. |
Also, FYI: https://github.com/goss-org/goss/actions/runs/10620900695 Seems I'm missing some permissions somewhere. Did I miss a step you asked me to do? |
I guess that's the difference between a personal GH account and an organisation. Similar to: #909 (comment) The package was created. I suspect that the repo has no permissions there: https://github.com/goss-org/goss/pkgs/container/trusty |
I think from a pure CI point of view, the results of Travis and GH are consistent. With the exception of the failures of Travis in the Windows environment. From this point of view, I think Travis should be disabled and a release with GH should be realised. If this works, it can be finish the topic use docker images from ghcr. |
I think we're really close, I see three succeeding and three failed here: https://github.com/goss-org/goss/actions/runs/10816944669 |
Hello, this has been a major and great contribution to goss, may thanks for doing this. CI story is so much better now. Following up on this issue, aside from the https://github.com/goss-org/goss/actions/workflows/docker-integration-tests.yaml job not working is there anything remaining here? Also, any thoughts on how to fix that job? |
Unfortunately i don't have that much time at the moment Short view:
|
I have opened a few PR to move from Travis CI to Github and update integration tests.
The following proposal for processing the PR.
Independent of this, new feature:
Independent of this, fix docs:
bring back linter:
later some PR fix linting issuesbring back linter for windowsupdate integration test docker images:
After that it is possible to move from Travis CI to Github Actions.
update call of linter in makefile (example)(fix some linting failures and configure golangci-lint #922)It may be useful to provide all CIs with a uniform wording and an optimized sequence at the end.
The text was updated successfully, but these errors were encountered: