3 ms·
That's my hill to die on : you must have a self hosted agent. You can have many cloud agents as you wish but you must at least have one where you can remotely
by whynotmaybe 9mo ago
That's my hill to die on : you must have a self hosted agent.
You can have many cloud agents as you wish but you must at least have one where you can remotely connect.
It has saved me hours of troubleshooting and polluting "workflow v1.3.56_final_should_work_2" commits
- nwellinghoff 9mo agoAgreed. So much easier with self hosted runner. Just get out of your own way and do it. Use cases like caching etc also much more efficient on self hosted runner.
- flanked-evergl 9mo agoThis kind of misses the point, though. I would say a much better rule is whatever runs in your workflows should also be entirely reproducible locally. Even if you can ssh into the remote environment that does not cover things like authentication and authorization, you don't just git a GITHUB_TOKEN with the same permissions.
- Storment33 9mo agoExactly, you should be able to do everything locally! All this needing to SSH into runners or needing self-hosted runners or needing act to emulate GitHub Actions is really a failure of the developer experience.
- whynotmaybe 9mo agoA lot of stuff can be handled by developer themselves, but usually some steps are voluntarily blocked, like publishing to Google Play/App store. You don't want anyone to be able to publish public facing app from their version of the code that might not be committed. Some of us remember an era where deployment was copy-paste from the local /bin folder to the /bin folder on production server.
- Storment33 9mo agoWhile I get some stuff you can't test locally, like 90%+ of complaints I see are for builds/tests. Which is really a failure of the engineers for not having a local feedback loop. I am of the opinion you should be able to deploy from your machine, just you do not have the permissions to normally. So that if CI ever goes down and you need to push an emergency fix or something you can break glass if needed.
- array_key_first 9mo agoIf you cannot build and run the application locally, I think there is something seriously, seriously wrong at the company. 90% of my day involves sitting in PHP storm with a debugger attached, introspecting whatever I need to. If I had to rely on even print statements being shit out on someone else's machine I don't know that I could be productive.
- Storment33 9mo agoI agree, yet unfortunately most of the time I personally see people complaining it is about builds or tests unable to reproduce failures etc locally or unable to run end to end tests and have to push to CI to get them ran.
- maxloh 9mo ago> That's my hill to die on : you must have a self hosted agent. That’s only true if you’re building simple workflows. A counter-example would be a workflow that builds and uploads Android APKs. When I last checked last year, there weren't any well-maintained Docker images with the Android SDK pre-installed, and there are no updated, publicly available builds for the runner-images: https://github.com/actions/runner-images/issues/176 https://github.com/actions/runner-images/issues/176
- esafak 9mo agoI do not follow. How does that change anything? Don't things still go wrong? Do you not need to debug?
- maxloh 9mo agoSorry for not being clearly enough. The point is that it is very difficult to replicate the environment of a hosted GitHub Actions runner, and having to do so defeats the ease of use the platform provides.
- whynotmaybe 9mo agoI'm building and deploying appbundle from my self hosted runner for this exact reason. I manually maintain flutter and Android sdk on my server. I've never been a docker fan, I prefer to completely handle my whole stack. I have scripts to install the required tools and some actions in my scripts are just echoing what needs to be done manually. With the years, I've found that infra for fully reproducible builds cost too much to maintain for us.