gitlab-ci-local
stern
gitlab-ci-local | stern | |
---|---|---|
10 | 16 | |
1,862 | 2,796 | |
- | 2.9% | |
9.1 | 6.0 | |
7 days ago | 7 days ago | |
TypeScript | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
gitlab-ci-local
-
π¦ GitLab CI YAML Modifications: Tackling the Feedback Loop Problem
Among these options, the one that has gained the most traction is gitlab-ci-local :
-
π¦ GitLab CI: 10+ Best Practices to Avoid Widespread Anti-patterns
The main reason behind this change is to have consistent scripts for local testing and remote runners during testing and debugging. However, there are already tools available, such as gitlab-ci-local, that allow you to run jobs locally, partially invalidating this argument. Additionally, working locally may not provide access to all necessary variables.
- GitHub Actions could be so much better
-
How do you debug CI/CD pipelines? Breakpoints?
Two tools I've used for local Gitlab CI runs: - https://github.com/firecow/gitlab-ci-local - https://gitlab.com/AdrianDC/gitlabci-local
-
makefiles in stages
What you might want to look at is this, to meet both needs https://github.com/firecow/gitlab-ci-local
-
Looking for a way to test CI pipeline (gitlab) locally
https://github.com/firecow/gitlab-ci-local exists but its not quite there yet. Personally Ive resorted to setting up a self-managed instance at home, relying on the included linter/validator and pushing repeatedly as before.
-
Selfhosted Gitlab for CI only
If you already have/had a working pipeline then maybe https://github.com/firecow/gitlab-ci-local has something worth looking at.
-
The End of CI
> One thing that would be nice, however, would be the ability to run the entire pipeline locally.
This cost me many hours of waiting for the Gitlab CI runner when debugging non-trivial pipelines, when the issue was something that did not have to do with the script steps inside of the jobs but rather how the Gitlab runner handled things.
I've found gitlab-ci-local [1] which actually does run the Gitlab pipeline locally, although I had to write some boilerplaye scripts to set up all the necessary 'CI_FOO_SOMETHING' environment variables before running the tool. (Which sometimes came back to bite me because the issue was actually in the content of some of those environment variables). It's still a very good tool.
[1] https://github.com/firecow/gitlab-ci-local
-
How to develop CI pipeline effectively?
Most CI/CD tools let you run pipelines locally. Just one example: https://circleci.com/blog/using-runner-for-local-testing/ . In my opinion Gitlab and Circleci have the test tools for this.
- firecow/gitlab-ci-local : Tired of pushing to test your .gitlab-ci.yml?
stern
-
βΈοΈ Kubernetes: From your docker-compose file to a cluster with Kompose
deploy: stage: deploy image: alpine/k8s:1.29.1 variables: NAMESPACE: $CI_COMMIT_REF_SLUG before_script: # init namespace - kubectl config use-context $KUBE_CONTEXT - kubectl create namespace $NAMESPACE || true # download tools - curl --show-error --silent --location https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_amd64.tar.gz | tar zx --directory /usr/bin/ stern && chmod 755 /usr/bin/stern && stern --version - curl --show-error --silent --location https://github.com/kubernetes/kompose/releases/download/v1.32.0/kompose-linux-amd64 -o /usr/local/bin/kompose && chmod a+x /usr/local/bin/kompose && kompose version # show logs asynchronously. Timeout to avoid hanging indefinitely when an error occurs in script section - timeout 1200 stern -n $NAMESPACE "app-" --tail=0 --color=always & # in background, tail new logs if any (current and incoming) pod with this regex as name - timeout 1200 kubectl -n $NAMESPACE get events --watch-only & # in background, tail new events in background script: # first delete CrashLoopBackOff pods, polluting logs - kubectl -n $NAMESPACE delete pod `kubectl -n $NAMESPACE get pods --selector app.kubernetes.io/component=$MODULE | awk '$3 == "CrashLoopBackOff" {print $1}'` || true # now deploying - kompose convert --out k8s/ - kubectl apply -n $NAMESPACE -f k8s/ - echo -e "\e[93;1mWaiting for the new app version to be fully operational...\e[0m" # waiting for successful deployment - kubectl -n $NAMESPACE rollout status deploy/app-db - kubectl -n $NAMESPACE rollout status deploy/app-back - kubectl -n $NAMESPACE rollout status deploy/app-front # on any error before this line, the script will still wait for these threads to complete, so the initial timeout is important. Adding these commands to after_script does not help - pkill stern || true - pkill kubectl || true after_script: # show namespace content - kubectl config use-context $KUBE_CONTEXT - kubectl -n $NAMESPACE get deploy,service,ingress,pod
-
stern VS stern - a user suggested alternative
2 projects | 11 Dec 2023
The old repo is dead
-
π¦ GitLab CI: 10+ Best Practices to Avoid Widespread Anti-patterns
node-and-git: image: node:18.10-alpine before_script: - apk --no-cache add git kubectl-and-stern: image: alpine/k8s:1.22.13 before_script: # install stern - curl --show-error --silent --location https://github.com/stern/stern/releases/download/v1.22.0/stern_1.22.0_linux_amd64.tar.gz | tar zx --directory /usr/bin/ stern && chmod 755 /usr/bin/stern playwright-and-kubectl: image: mcr.microsoft.com/playwright:v1.35.1-focal before_script: # install kubectl - curl --show-error --silent --location --remote-name https://storage.googleapis.com/kubernetes-release/release/v1.25.3/bin/linux/amd64/kubectl && chmod +x ./kubectl && mv ./kubectl /usr/local/bin/
-
K9s: A lazier way to manage Kubernetes Clusters
I'll add stern (https://github.com/stern/stern) to that - follow logs from multiple pods easily.
-
What k8s related tool you wish you knew earlier?
Multi pod and container log tailing for Kubernetes https://github.com/stern/stern
- What's your "IDE" of choice nowadays?
-
How to Deploy and Scale Strapi on a Kubernetes Cluster 1/2
stern v1.22.0
-
Getting started with kubectl plugins
Link to GitHub Repository
-
Julia Evans: Tips for Analyzing Logs
If you are using Kubernetes, I highly recommend using https://github.com/stern/stern
-
What daily terminal based tools are you using for cluster management?
Stern: https://github.com/stern/stern for log streaming
What are some alternatives?
dagger - Application Delivery as Code that Runs Anywhere
kubetail - Bash script to tail Kubernetes logs from multiple pods at the same time
tekton-kickstarter - Templates, scripts and samples for quickly building CI/CD with Tekton.
awesome-k8s-resources - A curated list of awesome Kubernetes tools and resources.
act - Run your GitHub Actions locally π
kail - kubernetes log viewer
pypyr automation task runner - pypyr task-runner cli & api for automation pipelines. Automate anything by combining commands, different scripts in different languages & applications into one pipeline process.
cw - The best way to tail AWS CloudWatch Logs from your terminal
action-tmate - Debug your GitHub Actions via SSH by using tmate to get access to the runner system itself.
openlens-node-pod-menu - Node and pod menus for OpenLens
goonstation - Repository for the Goonstation branch of SS13
saw - Fast, multi-purpose tool for AWS CloudWatch Logs