Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 45 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: Continuous Integration
on: [push]
jobs:
router:
name: template-github
tests:
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
Expand All @@ -12,30 +11,53 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Get npm cache directory
id: npm-cache
run: echo "::set-output name=dir::$(package-lock.json)"
- name: Cache npm dependencies
- name: Setup PHP, with composer and extensions
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, xml, ctype, iconv, intl
coverage: xdebug
- name: Get composer cache directory
id: composer-cache
run: echo "::set-output name=dir::apps/$(composer config cache-files-dir)"
- name: Cache composer dependencies
uses: actions/cache@v2
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Install npm dependencies
run: npm install
- name: linter readme.md
run: make linter-readme
- name: Validate composer.json
run: |
cd apps
composer validate
run: make composer-validate-ci
- name: Install Composer dependencies
run: |
cd apps
composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
run: make composer-dev-ci
- name: linter readme.md
run: make linter-readme
- name: Run PHP MD
run: make linter-phpmd-ci
- name: Run PHPMND
run: make linter-phpmnd-ci
- name: Test lancement bootstrap
run: make encore-dev
- name: Run twigcs
run: make linter-twigcs-ci
- name: Run phpstan
run: make linter-phpstan-ci
- name: Run Acceptance Tests
run: make tests-behat-ci
- name: Run Tests
run: make tests-simple-phpunit-unit-integration-ci
makefile:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: 'Docker swarm init'
run: docker swarm init --default-addr-pool 10.20.0.0/16
- name: 'Create proxy network'
run: make docker-create-network
- name: 'Build containers'
run: make docker-deploy
- name: 'Check running containers'
run: make docker-ls
14 changes: 0 additions & 14 deletions .github/workflows/docker.yml

This file was deleted.

3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
# composer.lock
node_modules
apps/node_modules/
apps/vendor
apps/vendor
apps/bin
99 changes: 92 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,30 @@ WWWFULLNAME := $(WWW).1.$$(docker service ps -f 'name=$(PRWWWOXY)' $(WWW) -q -
help:
@grep -E '(^[a-zA-Z_-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'

composer-suggests: ## suggestions package pour PHP
docker exec $(WWWFULLNAME) make composer-suggests

composer-outdated: ## Packet php outdated
docker exec $(WWWFULLNAME) make composer-outdated

composer-prod: ## Installation version de production
docker exec $(WWWFULLNAME) make composer-prod

composer-dev: ## Installation version de dev
docker exec $(WWWFULLNAME) make composer-dev

composer-dev-ci: ## Installation version de dev
cd apps && make composer-dev

composer-update: ## COMPOSER update
docker exec $(WWWFULLNAME) make composer-update

composer-validate: ## COMPOSER validate
docker exec $(WWWFULLNAME) make composer-validate

composer-validate-ci: ## COMPOSER validate
cd apps && make composer-validate

contributors: node_modules ## Contributors
@npm run contributors

Expand All @@ -35,11 +59,8 @@ docker-image-pull: ## Get docker image
docker-logs: ## logs docker
docker service logs -f --tail 100 --raw $(WWWFULLNAME)

docker-service-ls: ## docker service
@docker service ls

docker-stack-ps: ## docker stack ps
@docker stack ps $(STACK)
docker-ls: ## docker service
@docker stack services $(STACK)

docker-showstack: ## Show stack
@make docker-stack-ps -i
Expand All @@ -53,14 +74,78 @@ git-check: node_modules ## CHECK before
@git status

install: ## Installation
@make docker-create-network -i
@make docker-deploy -i

linter: apps/vendor node_modules ## linter
@make linter-phpstan -i
@make linter-phpcpd -i
@make linter-phpcs -i
@make linter-phpmd -i
@make linter-readme -i

linter-readme: node_modules ## linter README.md
@npm run linter-markdown README.md

linter-phpcbf: apps/vendor ## fixe le code PHP à partir d'un standard
docker exec $(WWWFULLNAME) make linter-phpcbf

linter-phpcpd: phpcpd.phar ## Vérifie s'il y a du code dupliqué
docker exec $(WWWFULLNAME) make linter-phpcpd

linter-phpcs: apps/vendor ## indique les erreurs de code non corrigé par PHPCBF
docker exec $(WWWFULLNAME) make linter-phpcs

linter-phpcs-onlywarning: apps/vendor ## indique les erreurs de code non corrigé par PHPCBF
docker exec $(WWWFULLNAME) make linter-phpcs-onlywarning

linter-phpcs-onlyerror: apps/vendor ## indique les erreurs de code non corrigé par PHPCBF
docker exec $(WWWFULLNAME) make linter-phpcs-onlyerror

linter-phpcs-onlyerror-ci: apps/vendor ## indique les erreurs de code non corrigé par PHPCBF
cd apps && make linter-phpcs-onlyerror

linter-phpinsights: apps/vendor ## PHP Insights
docker exec $(WWWFULLNAME) make linter-phpinsights

linter-phpmd: apps/vendor ## indique quand le code PHP contient des erreurs de syntaxes ou des erreurs
docker exec $(WWWFULLNAME) make linter-phpmd

linter-phpmd-ci: apps/vendor ## indique quand le code PHP contient des erreurs de syntaxes ou des erreurs
cd apps && make linter-phpmd

linter-phpmnd: apps/vendor ## Si des chiffres sont utilisé dans le code PHP, il est conseillé d'utiliser des constantes
docker exec $(WWWFULLNAME) make linter-phpmnd

linter-phpmnd-ci: apps/vendor ## Si des chiffres sont utilisé dans le code PHP, il est conseillé d'utiliser des constantes
cd apps && make linter-phpmnd

linter-phpstan: apps/vendor ## regarde si le code PHP ne peux pas être optimisé
docker exec $(WWWFULLNAME) make linter-phpstan

linter-phpstan-ci: apps/vendor ## regarde si le code PHP ne peux pas être optimisé
cd apps && make linter-phpstan

node_modules: ## npm install
npm install

ssh: ## ssh
docker exec -ti $(WWWFULLNAME) /bin/bash
docker exec -ti $(WWWFULLNAME) /bin/bash

tests-behat: apps/vendor ## Lance les tests behat
docker exec $(WWWFULLNAME) make tests-behat

tests-behat-ci: apps/vendor ## Lance les tests behat
cd apps && make tests-behat

tests-launch: apps/vendor ## Launch all tests
@make tests-behat -i
@make tests-phpunit-unit-integration -i

tests-phpunit-unit-integration: apps/vendor ## lance les tests phpunit
docker exec $(WWWFULLNAME) make tests-phpunit-unit-integration

tests-phpunit-unit-integration-ci: apps/vendor ## lance les tests phpunit
cd apps && make tests-phpunit-unit-integration

tests-phpunit: apps/vendor ## lance les tests phpunit
docker exec $(WWWFULLNAME) make tests-phpunit
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@
[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors)
<!-- ALL-CONTRIBUTORS-BADGE:END -->

![docker](https://github.com/koromerzhin/template-phpfpm/workflows/docker/badge.svg?branch=develop)

![Continuous Integration](https://github.com/koromerzhin/template-phpfpm/workflows/Continuous%20Integration/badge.svg?branch=develop)

</p>
Expand Down
88 changes: 88 additions & 0 deletions apps/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
.DEFAULT_GOAL := help

%:
@:

help:
@grep -E '(^[a-zA-Z_-]+:.*?##.*$$)|(^##)' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[32m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\[32m##/[33m/'

vendor:
@make composer-dev -i

.env: ## Install .env
cp .env.dist .env

phpcpd.phar:
wget https://phar.phpunit.de/phpcpd.phar

twigcs.phar:
wget https://github.com/friendsoftwig/twigcs/releases/download/v3.2.2/twigcs.phar

composer-suggests: ## suggestions package pour PHP
composer suggests --by-suggestion

composer-outdated: ## Packet php outdated
composer outdated

composer-prod: ## Installation version de production
composer install --no-dev --no-progress --no-suggest --prefer-dist --optimize-autoloader

composer-dev: ## Installation version de dev
composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader

composer-update: ## COMPOSER update
composer update

composer-validate: ## COMPOSER validate
composer validate

env-dev: .env ## Installation environnement dev
sed -i 's/APP_ENV=prod/APP_ENV=dev/g' .env

env-prod: .env ## Installation environnement prod
sed -i 's/APP_ENV=dev/APP_ENV=prod/g' .env
rm -rf vendor
@make composer-prod -i

linter-phpcbf: vendor ## fixe le code PHP à partir d'un standard
composer run phpcbf

linter-phpcpd: phpcpd.phar ## Vérifie s'il y a du code dupliqué
php phpcpd.phar src tests

linter-phpcs: vendor ## indique les erreurs de code non corrigé par PHPCBF
composer run phpcs

linter-phpcs-onlywarning: vendor ## indique les erreurs de code non corrigé par PHPCBF
composer run phpcs-onlywarning

linter-phpcs-onlyerror: vendor ## indique les erreurs de code non corrigé par PHPCBF
composer run phpcs-onlyerror

linter-phpinsights: apps/vendor ## PHP Insights
composer run phpinsights

linter-phpmd: vendor ## indique quand le code PHP contient des erreurs de syntaxes ou des erreurs
composer run phpmd

linter-phpmnd: vendor ## Si des chiffres sont utilisé dans le code PHP, il est conseillé d'utiliser des constantes
composer run phpmnd

linter-phpstan: vendor ## regarde si le code PHP ne peux pas être optimisé
composer run phpstan

linter-twigcs: twigcs.phar ## indique les erreurs de code de twig
php twigcs.phar templates

tests-behat: vendor ## Lance les tests behat
composer run behat

tests-launch: vendor ## Launch all tests
@make tests-behat -i
@make tests-phpunit -i

tests-phpunit: vendor ## lance les tests phpunit
composer run phpunit

tests-phpunit-unit-integration: vendor ## lance les tests phpunit
composer run phpunit-unit-integration
Empty file added apps/behat.yaml
Empty file.
33 changes: 29 additions & 4 deletions apps/composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
{
"name": "user/apps",
"type": "project",
"license": "MIT",
"require": {}
"name": "apps/phpfpm",
"type": "project",
"license": "MIT",
"description": "Template de projet en PHPFPM",
"require": {},
"config": {
"bin-dir": "bin"
},
"scripts": {
"phpcbf": "phpcbf -d memory_limit=-1 --report=diff -p --extensions=php",
"phpmd": "phpmd src,features/bootstrap,tests text phpmd.xml",
"phpcs-onlywarning": "phpcs src features/bootstrap tests --report=full --extensions=php --error-severity=0",
"phpcs-onlyerror": "phpcs src features/bootstrap tests --report=full --extensions=php --warning-severity=0",
"phpcs": "phpcs src features/bootstrap tests --report=full --extensions=php",
"phpstan": "phpstan analyse src features/bootstrap tests",
"phpinsights": "phpinsights",
"phpmnd": "phpmnd src,features/bootstrap,tests",
"behat": "behat --config behat.yaml",
"phpunit": "phpunit",
"phpunit-unit-integration": "phpunit --testsuite unit,integration"
},
"require-dev": {
"behat/behat": "3.7.0",
"phpmd/phpmd": "2.9.1",
"phpstan/phpstan": "0.12.52",
"squizlabs/php_codesniffer": "3.5.8",
"povils/phpmnd": "2.3.0",
"phpunit/phpunit": "9.1.5"
}
}
Loading