Migration follow-up
In the end, I did automate it.
I’ve done the things. I’ve ssh’d into a production server and updated a database with ad hoc SQL commands. I’ve pushed a commit without running the tests. I’ve done the release without a final sanity check of the artifacts. It usually works out fine.
Usually.
My ideas for managing projects on Codeberg without CI/CD would probably have worked out fine too.
Usually.
But I bit the bullet. I snagged a two year deal on a cheap(ish) VPSI already have web hosting, of course, but that runs on Debian and there are some deep conflicts between Docker and Debian’s firewall configuration. That did not work out well for me last time I tried. and spun up my own copy of Woodpecker CI on it.
It was remarkably painless. The part I expected to be a real nightmare: getting Woodpecker CI up and running and then getting it talking to Codeberg just worked on the first try.
Woodpecker CI runs in Docker containers, so I was able to leverage a lot of the work I’d done on those. I stumbled over all the usual things, as one does: YAML is painful to edit, I scratched my head for an hour over a misspelled environment variable name, I got the privileges and the secrets not-exactly-right a half-dozen times. But I got there.
And I got it working with Maven.
There are a couple of nice things about running CI/CD on “your own” hardware.
- It spins up new jobs quickly; you’re not competing with anyone else for the hardware.
- You can simplify some of the configuration with custom Docker containers and volumes. (In principle, you can do that on hosted CI/CD as well, but you have to go through the extra hassle of publishing them somewhere and dealing with whatever security implications that entails.)
I’ve got “the big one”, the CI/CD for XML Calabash working, and three or four much simpler things.
I’m very pleased, at the moment.