Closed sescobb27 closed 6 years ago
Regarding make
integration, might be worth spelunking https://github.com/elixir-lang/elixir_make for os compatibility, sanitisation, etc.
Hi @cloud8421, i was looking the elixir_make
project, but it seems it's only a mix task to compile projects with Makefiles, so it would not be of help here, but i'm going to take ideas from there to improve our tool to be more OS independent, thank you for pointing that out.
Overview
each repo we are polling is going to have a list of tasks that are going to be executed when there is a new release of it, each task will point to a repository which will be cloned in the client machine, a list of commands to execute and the adapter who is going to be in charge of the execution.
Github Source Adapter
It is in charge of fetching tasks from Github repositories to be run by the Runner adapter
Make Runner Adapter
It is in charge of running a task via
make
,make build
,make deploy
, etc.Steps
the steps that we are going to execute are the following
TODO
ENV
per script e.g credentials to publish things in github/docker-hub etc~, fixed with destillery and runtime configs in https://github.com/sescobb27/release_poller/pull/7System.cmd/3
. I was thinking in aDynamicSupervisor
and each time a consumer gets a job we start a new child (temporary
), assign it a job, and monitor it, then when it finishes (in the'DOWN'
message) we ack/reject messages to RabbitMQ depending on its shutdown reason e.g normal: ack, other: reject