Start checking PRs with perlcritic

This commit is contained in:
Your Name 2021-08-19 16:13:45 -04:00
parent 098e48d055
commit 241985fb2d
4 changed files with 38 additions and 4 deletions

4
.perlcriticrc Normal file
View file

@ -0,0 +1,4 @@
theme = community
# 5 is the least complainy, 1 is the most complainy
severity = 5

View file

@ -106,17 +106,33 @@ conflicts with services that might be running on your host, hydra and postgress
Note that this is only ever meant as an ad-hoc way of executing Hydra during development. Please make use of the 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. NixOS module for actually running Hydra in production.
### Running Tests ### Checking your patches
After making your changes, verify the test suite still passes. After following the steps in [Development Environment](#development-environment), run: After making your changes, verify the test suite passes and perlcritic is still happy.
Start by following the steps in [Development Environment](#development-environment).
Then, you can run the tests and the perlcritic linter together with:
```console
$ nix-shell
$ make check
```
You can run a single test with:
``` ```
$ nix-shell $ nix-shell
$ make check
$ # Or, to run a single test, use:
$ yath test ./t/foo/bar.t $ yath test ./t/foo/bar.t
``` ```
And you can run just perlcritic with:
```
$ nix-shell
$ make perlcritic
```
### JSON API ### 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) 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)

View file

@ -23,6 +23,7 @@ EXTRA_DIST = \
$(TESTS) $(TESTS)
TESTS = \ TESTS = \
perlcritic.pl \
test.pl test.pl
check_SCRIPTS = repos check_SCRIPTS = repos

13
t/perlcritic.pl Executable file
View file

@ -0,0 +1,13 @@
#!/usr/bin/env perl
use strict;
use warnings;
use Cwd 'abs_path';
use File::Basename;
my $dirname = abs_path(dirname(__FILE__) . "/..");
print STDERR "Executing perlcritic against $dirname\n";
chdir($dirname) or die "Failed to enter $dirname\n";
exec("perlcritic", ".") or die "Failed to execute perlcritic.";