Nix PHP | 74 Members | |
| A room for PHP developers running on Nix | 21 Servers |
| Sender | Message | Time |
|---|---|---|
| 16 Aug 2024 | ||
That only works if I only use phpunit for testing right? Otherwise I would have to build two buildComposerProject one for testing and one for production? | 07:34:56 | |
When you build a project uising buildComposerProject it is inherently made for production. | 07:42:15 | |
Since it, by default, doesn't include require-dev. I don't see the point doing it either. | 07:42:40 | |
| Perhaps I'm misunderstanding your request? | 07:42:51 | |
| Maybe, let me try to rephrase. | 07:43:38 | |
| I would like to run phpunit in a Gitlab CI. Nix devShell will be used to provide PHP and Gitlab provides a MariaDB container. In an existing project we use imperative containers for the unittests. What I tried so far is a fixed output derivation which looks like the following.
| 07:53:48 | |
| You cannot have --no-dev and install phpunit with require-dev dependencies at the same time | 07:56:16 | |
| in this case you have to install phpunit separately | 07:56:37 | |
| Ah sorry I have two derivations, thats the one for production dependencies | 07:56:56 | |
| 07:57:08 | |
| This one depends on the previous one and that's how I noticed that the outputHash changed because I didn't push the previous derivation to the cache. Therefore the runner had to built it itself and failed because the hash didn't match. | 07:58:35 | |
| However I don't need it to work exactly this way. This was just me trying to hack something together. | 07:59:12 | |
| In a Python project with poetry2nix I can do this for example: https://github.com/Nebucatnetzer/sort-of-pastebin/blob/main/flake.nix#L54-L67 | 08:04:30 | |
| One is the dev environment which which I can run the tests and the other is the final application. | 08:05:07 | |
| Which I ten use like this to do the tests: https://github.com/Nebucatnetzer/sort-of-pastebin/blob/main/.github/workflows/tests.yml | 08:05:49 | |
| And when they succeed I build the container | 08:06:02 | |
| https://github.com/Nebucatnetzer/sort-of-pastebin/blob/main/.github/workflows/build_containers.yml | 08:06:10 | |
But you're using nix develop. | 08:09:59 | |
buildComposerProject does not create a development shell (to be used with nix develop). | 08:10:25 | |
| Is there a way to do that? | 08:15:32 | |
| Creating a devshell containing your tools ? | 08:23:39 | |
| Yeah it's quite easy to do | 08:23:46 | |
| That's the easiest thing to do in Nix I believe. | 08:23:56 | |
| yeah but especially with the content of composer.lock | 08:24:36 | |
| mmh I don't think it has been done yet | 08:25:05 | |
| ah okay, because the rest I have already working | 08:25:29 | |
But you'll find all the most used tools already in nixpkgs (phpunit, psalm, phpstan, etc etc) | 08:25:42 | |
| I know that you could do 2 derivations | 08:26:34 | |
| For example: | 08:26:38 | |
| 08:27:14 | |