#gitlab
Day 1: oh yeah, 36 layers of `extends:` imported across 8 repos, this is so clever.
Day 10,000: Yeah, we don't know what any of these `extends:` do, just keep adding more if you need to
#Gitlab
How to write an awesome #gitlab pipeline. Make everything dependent on branch name. That way you got no way to test it and you will be continually surprised that what works on one branch fails on the next.
And use extends especially when the hierarchy is split across dozens of files and dozens of template repos. Keep adding layers, more and more! Aim for infinity.
Heaven forbid anything should ever be repeated far better to have 1 yaml stanza inherit from 1,000, nay 1,000,000. And you might say, but Matt, really 56 layers of yaml cake is more than enough and I say, if you chose 55 more than you needed, why did you stop at 55?
♡ 1 ↻ 0
I got 22 days of trial left to finish this #Gitlab Duo client.
I'm up to version 0.3.0, which if you are following proper cool down procedures means you can try it out in two weeks.
Has oauth support and a hot dog stand color theme option. That's really all anyone wants.
My take on an alternative to SBOM. Ask an LLM to do the web searching to see who it thinks is the maintainer for all the dependencies.
https://tuochat.readthedocs.io/en/latest/dependency-provenance/
♡ 0 ↻ 0
Yeah, there is a run pipeline button, but really, the UI of #gitlab pipelines is
- **read the source code**
- realize what files you need to edit or what pipeline to run while setting some env vars
- realize which buttons in the pipeline to click and in which order.
You can't share an artifact across repos in #Gitlab pipelines. But you can serialized your 50MB zip file into a yaml file & that you can `include:` with no additional build token permissions.
Did they think I wouldn't take the time to do that?! "Token has no permissions", my ass. I'm a programmer, bytes will flow where I tell them.
My #bash2gitlab tool is starting to stabilize, ready to use #gitlab fans!
You ever want to do this?
```yml
include:
- project: 'myorg/ci-templates'
file: '/script.sh'
```
Well you can't. It has to be yaml. Until now! Compile your bash & yaml to yaml. Also works for python and other scripting languages.
https://bash2gitlab.readthedocs.io/en/latest/overview/who_is_this_for/
#Gitlab pipeline developers will use a 50 file 6 level cascading hierarchy of environment variables before thinking about therapy or using a bash map.
Well this started as "inline my bash files into yaml" and now it is becoming "a suite of tools to support this workflow"
Centralizing your #gitlab templates in a single repo create so an ugly, unpleasant workflow.
Next problem to solve: cloning remote scripts to a local repo so you can run them locally in the correct context.
Also, long after I'd started this side project I discovered gitlab-ci-local
This let's you pretty faithfully execute a docker-base #gitlab pipeline locally.
For me, the immediate problem was needing to run docker on the laptop.
Still, it is a good alternative workflow, better than the default.
♡ 6 ↻ 0
Do you have so much #bash in your #gitlab pipelines that you wish you could use professional tooling, IDEs, shellcheck, local execution, etc.?
Well, have I got a tool for you. Compile your .sh files into yaml.
My git #multirepo tool is coming along. There are so many competitors in this space. I think I'm going to compete on the basis of UI, ease of use features, safety features.
It is impossible to not be opinionated & not having any opinions increases difficulty of use by deferring too many decisions to the user.
#Gitlab fell over. And I thought they'd login-walled their public docker repo. More likely because everything fell over.
yaml-wrapped-bash showdown... can it run locally (e.g. in docker or bare metal)?
#codedeploy yes
#Github actions yes with nektos
#gitlab-ci.yml no...not without a whole gitlab instance and/or runners
So battle between in #gitlab vs #codebuild - Gitlab supports arbitrary base images steps. Codebuild does only thru docker-in-docker. Gitlab just has a richer syntax by far.
Codebuild looks like you can do a local build. Gitlab looks like you need a runner which requires rights to register a local runner.
♡ 1 ↻ 0
#gitlab #github - create a `docs` branch and tell your gitalb-ci.yml file to skip the full build with unit tests, etc
When you use git as a wiki, you can have 100s of commits, none of them will require running unit tests or deploying to AWS on event of punctuation in markdown