-
Notifications
You must be signed in to change notification settings - Fork 15
CI: add docker build workflow #17
Comments
What do we need to do in order to get self-hosted runner on our server? |
@dieeasy use zoedberg/rgb-sdk@2aea1d5 (branch |
some considerationsquickly looked into shrinking down the docker image size but looks like it's temporarily eating up way more than the final ~15GB, so I guess there's nothing we can do to stay in the 14GB limit and a self-hosted runner could be the only way to go the first concern about a self-hosted runner is that the stock github actions runner is not meant to run unsafe workflows and needs to be isolated, as explained in a dedicated section of About self-hosted runners and stated again in Adding self-hosted runners the runner will either need to execute on a dedicated host (but it might not be enough), a virtual machine or probably a docker container (provided the runner process is not executed as root) |
is there an available host that can be dedicated to CI? minimum hardware requirements should be:
|
We have host in our company which can be used, but it's 64GB 64 cores, so probably needs some virtualization + it is used for different other stuff (all dockerized). What would be the best way for me to slice a piece of it dedicated for CI? (docker, some VM). OS is the latest Ubuntu |
* see RGB-WG#17 for more info
I may have found a way to avoid unauthorized workflow runs on a self-hosted runner, some compromises are required, though overviewafter trying some possible solutions, this is the way it could work:
pros and conspros:
cons:
recapadding a github app (to be discussed) and a dockerized self-hosted runner allows execution of workflows requiring more than 14GB of disk space while avoiding the big security issue arising from self-hosted runners on public projects does this solution look promising or shall we look for other ways to overcome this runner limitation? |
Hello There 👋🏻 I'm the author of the mentioned app. If there is anything I can help with, let me know :) |
@dieeasy can you please elaborate more on this part? what steps can be taken?
|
scenario:
a possible solution is to configure the github application to always allow workflows triggered by a commit from an authorized member with that in place, the "proper" way to "unblock" the workflow would be to have an authorized member review/edit and push the change to the forbidden file in a separate PR, then have the original PR rebased on that, thus removing the block as the forbidden file would no more be changed another possible solution, e.g. in case the PR is fine and it just needs to be checked before merge, would be to have an authorized member push a new commit on top of the PR, which would (by)pass the protection and let workflow run |
Sorry for missing the line of thoughts, can we just set up some docker thing on our server doing the build and integrating with GitHub actions? Or all the above is required for this scenario? |
IMO no, hardening a runner to the point that it's safe to run any workload without first checking it is not the way we want to go the main issue here is that github runners are not meant to run unsafe workflows adding some details: workflows are triggered by github and then assigned to a runner (e.g. depending on labels), so a PR that triggers a workflow would be able to target a self-hosted runner and execute anything, anytime |
@dr-orlovsky the above described solution is concerning not only because of being pretty complicated, but also because the software is close-source AND demands total write-access to all activities of our GitHub organisation. We are currently talking to the author about auditing the code of the app and hosting the code ourselves (maybe with rewriting some parts of it if needed) + investigating other options/solutions to this CI problem. I'll tag you in the comments later when the results are there. |
Hi - Did you try and contact me...? |
Let's add a
Docker Build
workflow that:As said in #15:
So I think our only option is to use a self-hosted runner
The text was updated successfully, but these errors were encountered: