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
Switch from Travis CI to GitHub Actions #582
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
nolar
force-pushed
the
github-actions
branch
2 times, most recently
from
November 18, 2020 14:21
bbad491
to
cbe0035
Compare
nolar
changed the title
[Experimental] GitHub Actions in action
Switch from Travis CI to GitHub Actions
Nov 18, 2020
This comment has been minimized.
This comment has been minimized.
2 similar comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
nolar
force-pushed
the
github-actions
branch
from
November 18, 2020 19:21
19c267c
to
bcad8ae
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
nolar
force-pushed
the
github-actions
branch
6 times, most recently
from
November 25, 2020 14:16
a774df6
to
58497b4
Compare
nolar
force-pushed
the
github-actions
branch
6 times, most recently
from
November 29, 2020 12:54
2fbdf86
to
f72ceff
Compare
nolar
force-pushed
the
github-actions
branch
2 times, most recently
from
November 29, 2020 14:00
5495eb3
to
01f0f2d
Compare
Travis CI has a new pricing model since Nov'2020 with "credits" per build-minutes. The credits were depleted quite fast. There is no clear way to buy more credits, there is no clear way to request more for an open-source project, there are no clear criteria on what counts as open-source. And even if requested, the build-minutes are used fast (mostly by nightly builds) — 10'000 credits were depleted in two weeks. That might work for tiny project, but for K8s tests matrix, those credits are not enough. Besides, Travis CI has introduced the limited capacity for open-source builds, so there were a few cases when the builds were waiting for 1 hour in the backlog to be executed. This kills all the optimisations made to get the PR feedback faster, in ~5 mins. GitHub Actions offer unlimited build-minutes for public repositories, i.e. for open-source. The pricing model is clear, if it would be ever needed. If and when GitHub will cancel free builds for open-source/public repositories, that approach can be revised again in favour of Travis CI or maybe other CI tools.
The presence/absence of the official Kubernetes client for Python complicates the build matrix and makes it visually clumsy: it is tested in only one or two jobs (which is sufficient), which requires defining the full build matrix, and then excluding its half, and the re-including those one or two jobs manually — to satisfy GitHub Actions' design. In fact, the official client library is almost not used and completely not tested in the framework: since authentication works with pykube-ng in all testing environments (K3s/K3d, Minikube, etc), the official client is never used alone to be tested. We can rely on the existing unit-tests where the presence/absence of both clients (pykube-ng and the "officia" one) is simulated with mocks. The tests are rudimentary, but presumably sufficient. The remaining places where the official client is used can also be removed in favour of more lightweight pykube-ng.
nolar
force-pushed
the
github-actions
branch
from
November 29, 2020 14:19
01f0f2d
to
784b9b1
Compare
The extracted action also contains the latest version detection, which would be an overkill for this repo (unrelated complexity). As the main benefit, the job names are not semantically limited to K8s `major.minor` versions, but flexible on `.micro` and `+k3s…` versioning. This allows us to configure the required GitHub checks for a PR to be mergeable.
nolar
force-pushed
the
github-actions
branch
from
November 29, 2020 23:35
e557595
to
7423b50
Compare
This was referenced Nov 30, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With all my love for Travis CI and support for a local company, but…
Travis CI has a new pricing model since Nov'2020 with "credits" per build-minutes. The credits were depleted quite fast. There is no clear way to buy more credits, there is no clear way to request more for an open-source project, there are no clear criteria on what counts as open-source. And even if requested, the build-minutes are used fast (mostly by nightly builds) — 10'000 credits were depleted in two weeks. That might work for a tiny project, but for K8s tests matrix, those credits are not enough.
Besides, Travis CI has introduced the limited capacity for open-source builds, so there were a few cases when the builds were waiting for 1 hour in the backlog to be executed. This kills all the optimisations made to get the PR feedback faster, in ~5 mins. See more at #554 (comment)
GitHub Actions offer unlimited build-minutes for public repositories, i.e. for open-source. The pricing model is clear if it would be ever needed. If and when GitHub will cancel free builds for open-source/public repositories, that approach can be revised again in favour of Travis CI or maybe other CI tools.
#554, related #551