onedev
gitlab-runner
Our great sponsors
onedev | gitlab-runner | |
---|---|---|
81 | 47 | |
12,562 | - | |
2.5% | - | |
9.6 | - | |
9 days ago | - | |
Java | ||
MIT License | - |
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.
onedev
-
Cicada – A FOSS, Cross-Platform Version of GitHub Actions and Gitlab CI
I'm going to plug https://onedev.io/ its awesome. Its self hosted and has its own tooling for CI/CD. I feel it doesn't get enough love, but I've been using it for years for my own stuff.
- Harness launches Gitness, an open-source GitHub competitor
- Ask HN: Gitlab or Gitea for self-hosting Git?
- Revolt: FOSS Discord Alternative
-
What self-hosted Git server ?
An option I don't see often brought up but I use it myself and love it is https://github.com/theonedev/onedev. It has its own CICD implementation along with a visual interface to configure the tasks. The developers are very responsive when issues are reported, and it has a very good code search engine with symbol recognition.
-
Self-hosted Alternatived to ClickUp?
https://leantime.io/ And https://onedev.io/ (if you want ci/cd as well)
-
GitHub Projects alternatives
OneDev supports projects.
-
Selfhosted solutions for developers are bullshit?
What about Gogs? Onedev looks nice too. https://github.com/theonedev/onedev
-
Unusual programming language that you use (Work, Hobby)
OneDev (GitHub) UI is too fancy here.
gitlab-runner
-
🦊 GitLab CI: Deploy a Majestic Single Server Runner on AWS
#!/bin/bash # ### Script to initialize a GitLab runner on an existing AWS EC2 instance with NVME disk(s) # # - script is not interactive (can be run as user_data) # - will reboot at the end to perform NVME mounting # - first NVME disk will be used for GitLab custom cache # - last NVME disk will be used for Docker data (if only one NVME, the same will be used without problem) # - robust: on each reboot and stop/start, disks are mounted again (but data may be lost if stop and then start after a few minutes) # - runner is tagged with multiple instance data (public dns, IP, instance type...) # - works with a single spot instance # - should work even with multiple ones in a fleet, with same user_data (not tested for now) # # /!\ There is no prerequisite, except these needed variables : MAINTAINER=zenika RUNNER_NAME="majestic-runner" GITLAB_URL=https://gitlab.com/ GITLAB_TOKEN=XXXX # prepare docker (re)install sudo apt-get -y install apt-transport-https ca-certificates curl gnupg lsb-release sysstat curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list >/dev/null sudo apt-get update # needed to use the docker.list # install gitlab runner curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | sudo bash sudo apt-get -y install gitlab-runner # create NVME initializer script cat </home/ubuntu/nvme-initializer.sh #!/bin/bash # # To be run on each fresh start, since NVME disks are ephemeral # so first start, start after stop, but not on reboot # inspired by https://stackoverflow.com/questions/45167717/mounting-a-nvme-disk-on-aws-ec2 # date | tee -a /home/ubuntu/nvme-initializer.log ### Handle NVME disks # get NVME disks bigger than 100Go (some small size disk may be there for root, depending on server type) NVME_DISK_LIST=\$(lsblk -b --output=NAME,SIZE | grep "^nvme" | awk '{if(\$2>100000000000)print\$1}' | sort) echo "NVME disks are: \$NVME_DISK_LIST" | tee -a /home/ubuntu/nvme-initializer.log # there may be 1 or 2 NVME disks, then we split (or not) the mounts between GitLab custom cache and Docker data export NVME_GITLAB=\$(echo "\$NVME_DISK_LIST" | head -n 1) export NVME_DOCKER=\$(echo "\$NVME_DISK_LIST" | tail -n 1) echo "NVME_GITLAB=\$NVME_GITLAB and NVME_DOCKER=\$NVME_DOCKER" | tee -a /home/ubuntu/nvme-initializer.log # format disks if not sudo mkfs -t xfs /dev/\$NVME_GITLAB | tee -a /home/ubuntu/nvme-initializer.log || echo "\$NVME_GITLAB already formatted" # this may already be done sudo mkfs -t xfs /dev/\$NVME_DOCKER | tee -a /home/ubuntu/nvme-initializer.log || echo "\$NVME_DOCKER already formatted" # disk may be the same, then already formated by previous command # mount on /gitlab-host/ and /var/lib/docker/ sudo mkdir -p /gitlab sudo mount /dev/\$NVME_GITLAB /gitlab | tee -a /home/ubuntu/nvme-initializer.log sudo mkdir -p /gitlab/custom-cache sudo mkdir -p /var/lib/docker sudo mount /dev/\$NVME_DOCKER /var/lib/docker | tee -a /home/ubuntu/nvme-initializer.log ### reinstall Docker (which data may have been wiped out) # docker (re)install sudo apt-get -y reinstall docker-ce docker-ce-cli containerd.io docker-compose-plugin | tee -a /home/ubuntu/nvme-initializer.log echo "NVME initialization succesful" | tee -a /home/ubuntu/nvme-initializer.log EOF # set NVME initializer script as startup script sudo tee /etc/systemd/system/nvme-initializer.service >/dev/null <
-
Atlassian prepares to abandon on-prem server products
GitLab team member here, thanks for sharing.
> Still not a big fan of how stiff Yaml pipelines feel in Gitlab CI
Maybe the pipeline editor in "Build > Pipeline editor" can help with live linting, or more advanced features such as parent-child pipelines or merge trains.
If you need tips for optimizing the CI/CD pipeline, suggest following these tips in the docs https://docs.gitlab.com/ee/ci/pipelines/pipeline_efficiency.... or a few more tips in my recent talk "Efficient DevSecOps pipelines in cloud-native world", slides from Chemnitz Linux Days 2023 in https://docs.google.com/presentation/d/1_kyGo_cWi5dKyxi3BfYj...
> and that tickets for what seems like a simple feature [1] hang around for years, but it is nice.
Thanks for sharing. (FYI for everyone) The linked issue suggests a Docker cache cleanup script, which might be helpful. https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27332#n... -> https://docs.gitlab.com/runner/executors/docker.html#clear-t...
-
GitHub Actions could be so much better
If only competitors could do better...
-
Caching of GitLab CI is too slow for rust build.
GitLab MR for the CACHE_COMPRESSION_LEVEL implementation
-
The GMP library's website is under attack by a single GitHub user
And in general just making caching stuff easier. I feel like it is unnecessarily complicated for example to cache apt-get in Gitlab which I assume makes most people not do it.
https://gitlab.com/gitlab-org/gitlab-runner/-/issues/991#not...
-
Gitlab Runner Podman Executer
gitlab issue: https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27119
-
Podman 4.2.0
Podman is supported as a gitlab-runner now, as I understand it.
-
Starting October 19, storage limit will be enforced on all Gitlab Free accounts
Thanks for the suggestion of adding a Git cache for a GitLab Runner. A similar mechanism already exists that allows control of the Git strategy with fetch on a local working copy which is faster, and clone if not yet existing. All benefits and limitations are documented [0].
To help prevent unneeded traffic when a new pipeline job is executed, GitLab Runner uses a shallow Git clone by default on GitLab.com SaaS that only pulls a limited set of Git commits from the current head instead of a full clone. [1]
There is a feature proposal [2] to add support for partial clone and sparse-checkout strategies that have been added in more recent Git versions. Recommend commenting/subscribing.
Please note that for GitLab.com SaaS Shared Runners, the traffic limits do not apply with mostly internal cloud traffic. [3]
[0] https://docs.gitlab.com/ee/ci/runners/configure_runners.html...
[1] https://docs.gitlab.com/ee/ci/large_repositories/#shallow-cl...
[2] https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26631
[3] https://about.gitlab.com/pricing/#what-counts-towards-my-tra...
-
Gitlab.com CI job 15x slower
I had a look, especially at the runners (https://gitlab.com/gitlab-org/gitlab-runner/blob/15-0-stable/CHANGELOG.md), but couldn't spot anything strange.
What are some alternatives?
Gitea - Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
woodpecker - Woodpecker is a simple yet powerful CI/CD engine with great extensibility.
gitlab
Jenkins - Jenkins automation server
kaniko - Build Container Images In Kubernetes
singularity - Singularity has been renamed to Apptainer as part of us moving the project to the Linux Foundation. This repo has been persisted as a snapshot right before the changes.
drone - Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery. [Moved to: https://github.com/harness/gitness]
jgitver - jgit based library to calculate semver compatible version from git tree
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
cockpit-podman - Cockpit UI for podman containers
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.