|
1 | | -ifndef BUILD_ENV |
2 | | -BUILD_ENV=7.4 |
3 | | -endif |
| 1 | +.SILENT: |
| 2 | +include vendor/sigwin/infra/resources/PHP/library.mk |
4 | 3 |
|
5 | 4 | ifndef OPENAPI_DOCKER_COMMAND |
6 | 5 | OPENAPI_DOCKER_IMAGE=dkarlovi/openapi-generator-php:latest |
7 | 6 | OPENAPI_DOCKER_COMMAND=docker run --init --interactive --rm --tty --env "COMPOSER_CACHE_DIR=/composer/cache" --user "$(shell id -u):$(shell id -g)" --volume "$(shell pwd):/project" --volume "$(shell pwd)/../openapi-specs:/specs" --volume "${HOME}/.composer:/composer" --workdir /project ${OPENAPI_DOCKER_IMAGE} |
8 | 7 | endif |
9 | 8 |
|
10 | | -ifndef DOCQA_DOCKER_COMMAND |
11 | | -DOCQA_DOCKER_IMAGE=dkarlovi/docqa:latest |
12 | | -DOCQA_DOCKER_COMMAND=docker run --init --interactive --rm --user "$(shell id -u):$(shell id -g)" --volume "$(shell pwd)/var/tmp/docqa:/.cache" --volume "$(shell pwd):/project" --workdir /project ${DOCQA_DOCKER_IMAGE} |
13 | | -endif |
14 | | - |
15 | | -ifndef PHPQA_DOCKER_COMMAND |
16 | | -PHPQA_DOCKER_IMAGE=jakzal/phpqa:1.52-php${BUILD_ENV}-alpine |
17 | | -PHPQA_DOCKER_COMMAND=docker run --init --interactive --rm --env "COMPOSER_CACHE_DIR=/composer/cache" --user "$(shell id -u):$(shell id -g)" --tmpfs /tmp --volume "$(shell pwd):/project" --volume "${HOME}/.composer:/composer" --workdir /project ${PHPQA_DOCKER_IMAGE} |
18 | | -endif |
19 | | - |
20 | | -default: help |
21 | | -docs: markdownlint textlint vale |
22 | | -run/check: composer-validate cs-check run/analyze ## Run a suite of checks (code style, static analysis) |
23 | | -run/analyze: phpstan psalm ## Run static analysis |
24 | | -run/test: phpunit ## Run a suite of tests |
25 | | - |
26 | | -help: ## Prints commands help |
27 | | - @grep --no-filename --extended-regexp '^ *[-a-zA-Z0-9_/]+ *:.*## ' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[45m%-15s\033[0m %s\n", $$1, $$2}' |
28 | | - |
29 | | -build: ensure ## Rebuild the repo |
| 9 | +build: ## Rebuild the repo |
30 | 10 | sh -c "${OPENAPI_DOCKER_COMMAND} /specs/reddit/v1/index.yaml" |
31 | 11 |
|
32 | | -composer-validate: ensure composer-normalize-check |
33 | | - sh -c "${PHPQA_DOCKER_COMMAND} composer validate" |
34 | | -composer-install: ensure |
35 | | - sh -c "${PHPQA_DOCKER_COMMAND} composer upgrade" |
36 | | -composer-normalize-check: ensure |
37 | | - sh -c "${PHPQA_DOCKER_COMMAND} composer normalize --dry-run --no-check-lock --no-update-lock" |
38 | | - |
39 | | -cs-check: ensure |
40 | | - sh -c "${PHPQA_DOCKER_COMMAND} php-cs-fixer fix --using-cache=false --dry-run --diff -vvv" |
41 | | - |
42 | | -phpstan: ensure |
43 | | - sh -c "${PHPQA_DOCKER_COMMAND} phpstan analyse" |
44 | | - |
45 | | -psalm: ensure |
46 | | - sh -c "${PHPQA_DOCKER_COMMAND} psalm --show-info=false --threads max" |
47 | | - |
48 | | -phpunit: |
49 | | - sh -c "${PHPQA_DOCKER_COMMAND} vendor/bin/phpunit --verbose" |
50 | | -phpunit-coverage: ensure |
51 | | - sh -c "${PHPQA_DOCKER_COMMAND} php -d pcov.enabled=1 vendor/bin/phpunit --verbose --coverage-text --log-junit=var/junit.xml --coverage-xml var/coverage-xml/" |
52 | | - |
53 | | -markdownlint: ensure |
54 | | - sh -c "${DOCQA_DOCKER_COMMAND} markdownlint *.md docs/" |
55 | | -textlint: ensure |
56 | | - sh -c "${DOCQA_DOCKER_COMMAND} textlint -c docs/.textlintrc.dist *.md docs/" |
57 | | -vale: ensure |
58 | | - sh -c "${DOCQA_DOCKER_COMMAND} vale --config docs/.vale.ini.dist README.md docs/Api/ docs/Model/" |
59 | | - |
60 | | -ensure: |
61 | | - mkdir -p ${HOME}/.composer var/tmp/docqa var/tmp/phpqa |
| 12 | +vendor/sigwin/infra/resources/PHP/library.mk: |
| 13 | + mv composer.json composer.json~ && rm -f composer.lock |
| 14 | + docker run --rm --user '$(shell id -u):$(shell id -g)' --volume '$(shell pwd):/app' --workdir /app composer:2 require sigwin/infra |
| 15 | + mv composer.json~ composer.json && rm -f composer.lock |
0 commit comments