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

Switch from Travis CI to GitHub Actions #582

Merged
merged 5 commits into from Nov 29, 2020
Merged

Switch from Travis CI to GitHub Actions #582

merged 5 commits into from Nov 29, 2020

Conversation

nolar
Copy link
Owner

@nolar nolar commented Nov 17, 2020

With all my love for Travis CI and support for a local company, but…

image

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)

image

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

@nolar nolar force-pushed the github-actions branch 2 times, most recently from bbad491 to cbe0035 Compare November 18, 2020 14:21
@nolar nolar changed the title [Experimental] GitHub Actions in action Switch from Travis CI to GitHub Actions Nov 18, 2020
@nolar nolar added the automation CI/CD: testing, linting, releasing automatically label Nov 18, 2020
@nolar nolar marked this pull request as ready for review November 18, 2020 14:29
@github-actions

This comment has been minimized.

2 similar comments
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@nolar nolar force-pushed the github-actions branch 6 times, most recently from a774df6 to 58497b4 Compare November 25, 2020 14:16
@nolar nolar force-pushed the github-actions branch 6 times, most recently from 2fbdf86 to f72ceff Compare November 29, 2020 12:54
@nolar nolar force-pushed the github-actions branch 2 times, most recently from 5495eb3 to 01f0f2d Compare November 29, 2020 14:00
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.
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automation CI/CD: testing, linting, releasing automatically
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant