How do you define what repos you need and which commands are run? Ah, it is indeed also a YAML file: https://srht.site/automating-deployments
How do you define what repos you need and which commands are run? Ah, it is indeed also a YAML file: https://srht.site/automating-deployments
That was definitely the most bullshit criticism in the article. Clearly not even something they actually care about because they settled on Drone CI which is configured in exactly the same way.
It took me an embarrassingly long time to learn that you don't need to use their little action plugins for everything.
Once I figured that out, and figured out how to run CI in a container specified by the repo, I was actually quite happy to transition my CI away from Jenkins (which was always pretty rough, but I knew I could keep the builds running locally that way).
I guess the real proof will be if I'm able to ever leave GitHub, but I feel pretty good about the amount of lock-in vs the benefits of the service.
Would you happen to have an example YAML at hand?
https://github.com/ahepp/resume/blob/d7778b1339271cbd7812634...
It uses GitHub's devcontainer plugin. There's a devcontainer config at .devcontainer/devcontainer.json, which says to use the image specified by .ci/Dockerfile.
So when I'm developing on any Linux system, I can run
$ docker build .ci/Dockerfile -t my-container
$ docker run --rm -it -v $(pwd):/project -w /project my-container
And have a shell with my LaTeX environment all ready to go.I can also create a GitHub codespace from the devcontainer config. I'm excited to explore more of the possibilities with devcontainers. I've included Dockerfiles with all my projects for quite a while now, it's cool to have some kind of standard written down that tooling can be written for.
I think the GitHub YAML a slight improvement over the old Jenkins configs it replaced:
https://github.com/ahepp/resume/commit/a144ee06b868ae867b287...
For one, there's no out-of-band Jenkins UI I need to configure the pipeline in. The syntax is probably a slight improvement over Jenkins. I'm also happy to use opaque plugins for certain things, like uploading to S3.