github-workflows-kt VS gitlab-runner

Compare github-workflows-kt vs gitlab-runner and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
github-workflows-kt gitlab-runner
8 47
486 -
1.6% -
9.7 -
7 days ago -
Kotlin
Apache License 2.0 -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

github-workflows-kt

Posts with mentions or reviews of github-workflows-kt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-22.
  • GitHub Actions could be so much better
    21 projects | news.ycombinator.com | 22 Sep 2023
  • XML is better than YAML
    17 projects | news.ycombinator.com | 20 Sep 2023
    We use Kotlin to generate the yaml for our github actions: https://github.com/typesafegithub/github-workflows-kt

    Nothing like a good old type safe compiled language to cut down on the verbosity, copy paste usage, silly syntax errors, weird undocumented you just have to know the magical incantations, etc. Kotlin or similar languages are the way to go. Much safer, more compact, easier to cut down on the copy paste reuse (which is just miserable drudgery), easy to introduce some sane abstractions where that makes sense. You get auto completion. And if it compiles, it's likely to just work.

    People keep on moving around the deck chairs on the proverbial Titanic when it comes to configuration languages. Substituting yaml for json or toml just moves the problems. And substituting those with XML just introduces other issues and only marginally improves things. Well formed xml is nice. But so is well formed json. Schemas help, if the urls don't 404 and you have tools that can actually do something with them. Which, as it turns out is mostly not a thing in practice. And without that, it's just repetitive bloat. XML with schemas becomes very hard to read quickly.

    There's a reason, people started ignoring XML once json became popular: json does most of the essential stuff well enough that XML just isn't worth the effort. And if you have something where you'd actually need the complexity of XML, it's likely to be some really ugly bloated kind of thing where the last thing you'd want to do is edit it manually.

    I've dealt with cloudformation in XML form at some point in my life. It sucks. Not just a little bit. It's an absolute piss poor format for a thing like that. Since such a thing was lacking at the time, we ended up actually building our own little tools to generate that xml. Hand editing it was just too painful. One mistake could corrupt your entire stack. And it takes ages to find out if you actually got it right. In Json form it's hardly any better. It's just one of those convoluted over-engineered things. Anyway, Json support for cloudformation was not there at the time and the difference is like asking whether you'd preferred to be shot or stabbed. It's going to suck either way.

  • Typesafe Github Workflows explained to a 5 years old
    3 projects | dev.to | 9 Sep 2023
    github-workflows-kt is a tool for creating GitHub Actions workflows in a type-safe script, helping you to build robust workflows for your GitHub projects without mistakes, with pleasure, in Kotlin.
  • Guides for Kotlin scripting use case
    8 projects | /r/Kotlin | 12 Mar 2023
    The github-workflows-kt project uses Kotlin scripting, and it recommends doing everything using main.kts, because it's easier.
  • Feature Flags in a CI Pipeline
    4 projects | news.ycombinator.com | 17 Jan 2023
    I use matrix tests with github actions to test my kt-search client with different versions of elastisearch and opensearch. Pretty easy to set up: https://github.com/jillesvangurp/kt-search/blob/master/.gith...

    Basically it fires up elasticsearch using docker-compose and then the integration tests run against that. You could use a similar strategy to test different feature flag combinations.

    For some of our private projects, we use kts to generate the github action yaml files using this: https://github.com/krzema12/github-workflows-kt

    Well worth checking out if you have more complex workflows. Yaml is just horrible in terms of copy paste reuse. Also nice to get some compile time safety and auto complete with our action files.

  • Kts Scripting of Yaml & Json Dialects
    4 projects | dev.to | 9 Aug 2022
    One of my team members, Nikky, got annoyed with the verbosity and insane amount of copy-paste reuse needed to drive Github Actions. And true to her nature, promptly fixed it by using and contributing to GitHub Actions Kotlin DSL
  • GitHub Actions: a New Hope in YAML Wasteland
    6 projects | dev.to | 11 Jul 2022
    GitHub: https://github.com/krzema12/github-actions-kotlin-dsl
  • GitHub Actions Kotlin DSL
    1 project | /r/Kotlin | 20 Jan 2022

gitlab-runner

Posts with mentions or reviews of gitlab-runner. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-17.
  • 🦊 GitLab CI: Deploy a Majestic Single Server Runner on AWS
    4 projects | dev.to | 17 Feb 2024
    #!/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
    6 projects | news.ycombinator.com | 16 Oct 2023
    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
    21 projects | news.ycombinator.com | 22 Sep 2023
    If only competitors could do better...

    https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2797

  • SLOT77 ; Daftar Situs Judi Slot 777 Online Terbaik &amp; Terpercaya 2023
    1 project | /r/u_vikkou7 | 3 Jul 2023
  • Gacor88 : Daftar Slot Gacor88 Terbaru Anti Boncos Gampang Maxwin Disini Bos
    1 project | /r/u_vikkou7 | 2 Jul 2023
  • SLOT GACOR88 ; SITUS SLOT GACOR 88 TERBARU DAN TERPERCAYA GAMPANG MENANG 2023
    1 project | /r/u_vikkou7 | 2 Jul 2023
  • SLOT4D : SITUS SLOT GACOR 4D TERUPDATE MUDAH MAXWIN NEW MEMBER X250 X500
    1 project | /r/u_vikkou7 | 2 Jul 2023
  • Gitlab runner in-depth - communication and CI_JOB_TOKEN
    1 project | /r/gitlab | 28 Jun 2023
  • Caching of GitLab CI is too slow for rust build.
    4 projects | /r/rust | 27 Jun 2023
    GitLab MR for the CACHE_COMPRESSION_LEVEL implementation
  • The GMP library's website is under attack by a single GitHub user
    6 projects | news.ycombinator.com | 18 Jun 2023
    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...

What are some alternatives?

When comparing github-workflows-kt and gitlab-runner you can also consider the following projects:

kohttp - Kotlin DSL http client

woodpecker - Woodpecker is a simple yet powerful CI/CD engine with great extensibility.

setup-wsl - A GitHub action to install and setup a Linux distribution for the Windows Subsystem for Linux (WSL)

kaniko - Build Container Images In Kubernetes

maven-simple - Example Maven project demonstrating the use of

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.

nix-configs - My Nix{OS} configuration files

onedev - Git Server with CI/CD, Kanban, and Packages. Seamless integration. Unparalleled experience.

kotlinpoet - A Kotlin API for generating .kt source files.

cockpit-podman - Cockpit UI for podman containers

github-actions-typing - Bring type-safety to your GitHub actions' API!

machine