diff --git a/README.md b/README.md index 113254b7..100e24f2 100644 --- a/README.md +++ b/README.md @@ -85,36 +85,10 @@ $ configurePhase # NOTE: not ./configure $ make ``` -### Development Workflow +### Executing Hydra During Development -When working on new features or bug fixes you want to be able to run Hydra from your working copy. There are -two ways to do this. One is better for interactive development and provides faster feedback cycles, the other -is more convenient for a single test run of Hydra from the working copy (suiteable for PR reviews). - -#### Using runHydra - -Hydra can be built and executed using the `runHydra` shell: - -``` -$ nix-shell default.nix -A runHydra -``` - -This will spawn a shell that starts hydra-server, hydra-queue-runner, hydra-evaluator and postgres using [foreman](https://github.com/ddollar/foreman). -In order to not collide with potentially existing installations running on default ports hydra and postgres are running on custom ports: - -- hydra-server: 63333 -- postgresql: 64444 - -**Note**: In some cases you may want to skip test execution. You can do so by passing `doCheck false`: - -``` -$ nix-shell default.nix -A runHydra --arg doCheck false -``` - -#### Using foreman - -When you are actively working on the code, you need fast feedback cycles and thus want incremental builds. Instead of using -`runHydra` you can just run `foreman start` directly in the normal `nix-shell` environment: +When working on new features or bug fixes you need to be able to run Hydra from your working copy. This +can be done using [foreman](https://github.com/ddollar/foreman): ``` $ nix-shell @@ -123,6 +97,15 @@ $ make $ foreman start ``` +Have a look at the [Procfile](./Procfile) if you want to see how the processes are being started. In order to avoid +conflicts with services that might be running on your host, hydra and postgress are started on custom ports: + +- hydra-server: 63333 +- postgresql: 64444 + +Note that this is only ever meant as an ad-hoc way of executing Hydra during development. Please make use of the +NixOS module for actually running Hydra in production. + ### JSON API You can also interface with Hydra through a JSON API. The API is defined in [hydra-api.yaml](./hydra-api.yaml) and you can test and explore via the [swagger editor](https://editor.swagger.io/?url=https://raw.githubusercontent.com/NixOS/hydra/master/hydra-api.yaml)