I need to transfer some CI pipelines from Jenkins to Github actions. However I have the feeling we might want to switch from GitHub somewhere else soon. Do you guys have any advice how I can avoid rewriting all pipelines again and again?
You're probably not going to get totally away from significant rewrites. That being said, having independent build scripts (as in actual shell scripts) to run your pipelines would be helpful. This way you would just launch the script instead of rewriting everything in the CI's language of choice. Also making it as modular and well documented as possible helps.