From a7292fdff9b1c9a8925758e71e7759acb657b9fc Mon Sep 17 00:00:00 2001 From: cytopia Date: Thu, 8 Dec 2022 14:05:14 +0100 Subject: [PATCH] Backport more tools for work flavour --- .ansible/DOCKERFILES/Dockerfile-slim.j2 | 54 +++- .ansible/DOCKERFILES/Dockerfile-work.j2 | 2 +- .ansible/group_vars/all/slim.yml | 30 ++ .ansible/group_vars/all/work-help.yml | 1 + .ansible/group_vars/all/work.yml | 410 +++++++++++++++++++----- Dockerfiles/slim/Dockerfile-5.2 | 56 +++- Dockerfiles/slim/Dockerfile-5.3 | 56 +++- Dockerfiles/slim/Dockerfile-5.4 | 56 +++- Dockerfiles/slim/Dockerfile-5.5 | 56 +++- Dockerfiles/slim/Dockerfile-5.6 | 56 +++- Dockerfiles/slim/Dockerfile-7.0 | 56 +++- Dockerfiles/slim/Dockerfile-7.1 | 56 +++- Dockerfiles/slim/Dockerfile-7.2 | 56 +++- Dockerfiles/slim/Dockerfile-7.3 | 56 +++- Dockerfiles/slim/Dockerfile-7.4 | 56 +++- Dockerfiles/slim/Dockerfile-8.0 | 56 +++- Dockerfiles/slim/Dockerfile-8.1 | 56 +++- Dockerfiles/slim/Dockerfile-8.2 | 56 +++- Dockerfiles/work/Dockerfile-5.2 | 211 +++++++++++- Dockerfiles/work/Dockerfile-5.3 | 257 ++++++++++++++- Dockerfiles/work/Dockerfile-5.4 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-5.5 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-5.6 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-7.0 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-7.1 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-7.2 | 282 ++++++++++++++-- Dockerfiles/work/Dockerfile-7.3 | 264 +++++++++++++-- Dockerfiles/work/Dockerfile-7.4 | 264 +++++++++++++-- Dockerfiles/work/Dockerfile-8.0 | 264 +++++++++++++-- Dockerfiles/work/Dockerfile-8.1 | 264 +++++++++++++-- Dockerfiles/work/Dockerfile-8.2 | 264 +++++++++++++-- bin/gen-docs-php-tools.py | 28 +- doc/available-tools.md | 152 +++++++-- php_tools/awesome-ci/README.md | 9 + php_tools/awesome-ci/install.yml | 16 + php_tools/awesome-ci/options.yml | 15 + php_tools/git-flow/README.md | 7 + php_tools/git-flow/install.yml | 11 + php_tools/git-flow/options.yml | 11 + php_tools/git/README.md | 7 + php_tools/git/install.yml | 7 + php_tools/git/options.yml | 11 + php_tools/jsonlint/README.md | 2 +- php_tools/laravel-installer/README.md | 8 + php_tools/laravel-installer/install.yml | 42 +++ php_tools/laravel-installer/options.yml | 11 + php_tools/linkcheck/README.md | 7 + php_tools/linkcheck/install.yml | 10 + php_tools/linkcheck/options.yml | 11 + php_tools/mdlint/README.md | 8 + php_tools/mdlint/install.yml | 13 + php_tools/mdlint/options.yml | 11 + php_tools/php-cs-fixer/README.md | 8 + php_tools/php-cs-fixer/install.yml | 41 +++ php_tools/php-cs-fixer/options.yml | 11 + php_tools/phpcbf/README.md | 8 + php_tools/phpcbf/install.yml | 17 + php_tools/phpcbf/options.yml | 11 + php_tools/phpcs/README.md | 7 + php_tools/phpcs/install.yml | 17 + php_tools/phpcs/options.yml | 11 + php_tools/phpmd/README.md | 8 + php_tools/phpmd/install.yml | 8 + php_tools/{wpcli => phpmd}/options.yml | 2 +- php_tools/pm2/README.md | 9 + php_tools/pm2/install.yml | 13 + php_tools/pm2/options.yml | 11 + php_tools/pwncat/install.yml | 1 - php_tools/sass/README.md | 10 + php_tools/sass/install.yml | 13 + php_tools/sass/options.yml | 11 + php_tools/shellcheck/README.md | 7 + php_tools/shellcheck/install.yml | 7 + php_tools/shellcheck/options.yml | 11 + php_tools/stylelint/README.md | 8 + php_tools/stylelint/install.yml | 13 + php_tools/stylelint/options.yml | 11 + php_tools/symfony-cli/README.md | 7 + php_tools/symfony-cli/install.yml | 9 + php_tools/symfony-cli/options.yml | 11 + php_tools/vue-cli/README.md | 10 + php_tools/vue-cli/install.yml | 13 + php_tools/vue-cli/options.yml | 11 + php_tools/webpack-cli/README.md | 8 + php_tools/webpack-cli/install.yml | 13 + php_tools/webpack-cli/options.yml | 11 + php_tools/{wpcli => wp-cli}/README.md | 0 php_tools/{wpcli => wp-cli}/install.yml | 0 php_tools/wp-cli/options.yml | 11 + 89 files changed, 5061 insertions(+), 419 deletions(-) create mode 100644 php_tools/awesome-ci/README.md create mode 100644 php_tools/awesome-ci/install.yml create mode 100644 php_tools/awesome-ci/options.yml create mode 100644 php_tools/git-flow/README.md create mode 100644 php_tools/git-flow/install.yml create mode 100644 php_tools/git-flow/options.yml create mode 100644 php_tools/git/README.md create mode 100644 php_tools/git/install.yml create mode 100644 php_tools/git/options.yml create mode 100644 php_tools/laravel-installer/README.md create mode 100644 php_tools/laravel-installer/install.yml create mode 100644 php_tools/laravel-installer/options.yml create mode 100644 php_tools/linkcheck/README.md create mode 100644 php_tools/linkcheck/install.yml create mode 100644 php_tools/linkcheck/options.yml create mode 100644 php_tools/mdlint/README.md create mode 100644 php_tools/mdlint/install.yml create mode 100644 php_tools/mdlint/options.yml create mode 100644 php_tools/php-cs-fixer/README.md create mode 100644 php_tools/php-cs-fixer/install.yml create mode 100644 php_tools/php-cs-fixer/options.yml create mode 100644 php_tools/phpcbf/README.md create mode 100644 php_tools/phpcbf/install.yml create mode 100644 php_tools/phpcbf/options.yml create mode 100644 php_tools/phpcs/README.md create mode 100644 php_tools/phpcs/install.yml create mode 100644 php_tools/phpcs/options.yml create mode 100644 php_tools/phpmd/README.md create mode 100644 php_tools/phpmd/install.yml rename php_tools/{wpcli => phpmd}/options.yml (95%) create mode 100644 php_tools/pm2/README.md create mode 100644 php_tools/pm2/install.yml create mode 100644 php_tools/pm2/options.yml create mode 100644 php_tools/sass/README.md create mode 100644 php_tools/sass/install.yml create mode 100644 php_tools/sass/options.yml create mode 100644 php_tools/shellcheck/README.md create mode 100644 php_tools/shellcheck/install.yml create mode 100644 php_tools/shellcheck/options.yml create mode 100644 php_tools/stylelint/README.md create mode 100644 php_tools/stylelint/install.yml create mode 100644 php_tools/stylelint/options.yml create mode 100644 php_tools/symfony-cli/README.md create mode 100644 php_tools/symfony-cli/install.yml create mode 100644 php_tools/symfony-cli/options.yml create mode 100644 php_tools/vue-cli/README.md create mode 100644 php_tools/vue-cli/install.yml create mode 100644 php_tools/vue-cli/options.yml create mode 100644 php_tools/webpack-cli/README.md create mode 100644 php_tools/webpack-cli/install.yml create mode 100644 php_tools/webpack-cli/options.yml rename php_tools/{wpcli => wp-cli}/README.md (100%) rename php_tools/{wpcli => wp-cli}/install.yml (100%) create mode 100644 php_tools/wp-cli/options.yml diff --git a/.ansible/DOCKERFILES/Dockerfile-slim.j2 b/.ansible/DOCKERFILES/Dockerfile-slim.j2 index 9927c91..41de42c 100644 --- a/.ansible/DOCKERFILES/Dockerfile-slim.j2 +++ b/.ansible/DOCKERFILES/Dockerfile-slim.j2 @@ -75,7 +75,7 @@ RUN set -eux \ {%- endif %} ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -90,6 +90,32 @@ RUN set -eux \ redis-tools \ sqlite3 +{% set tools_apt = [] -%} +{%- for tool in base_software_enabled -%} + {%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%} + {%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%} + {{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}} + {%- endif -%} + {%- endif -%} +{%- endfor %} + +{%- if tools_apt -%} +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + {{- "\n" -}} + {%- if tools_apt -%} + {{- "\t\t# ---------- type: apt ----------\n" -}} + {%- for apt in tools_apt | unique | sort -%} + {{- "\t\t" + apt + " \\" + "\n" -}} + {%- endfor -%} + {%- endif -%} + {{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}} +{% endif %} + ### ### Devilbox required cli tools from group_vars (slim.yml) ### @@ -226,6 +252,32 @@ RUN set -eux \ FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base ARG ARCH +{% set tools_apt = [] -%} +{%- for tool in base_software_enabled -%} + {%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%} + {%- if fn.tool_apt_get_package(php_version, tool, base_software_available) -%} + {{- tools_apt.append(fn.tool_apt_get_package(php_version, tool, base_software_available)) -}} + {%- endif -%} + {%- endif -%} +{%- endfor %} + +{%- if tools_apt -%} +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + {{- "\n" -}} + {%- if tools_apt -%} + {{- "\t\t# ---------- type: apt ----------\n" -}} + {%- for apt in tools_apt | unique | sort -%} + {{- "\t\t" + apt + " \\" + "\n" -}} + {%- endfor -%} + {%- endif -%} + {{- "\t" -}}&& rm -rf /var/lib/apt/lists/*{{- "\n" -}} +{% endif %} + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### diff --git a/.ansible/DOCKERFILES/Dockerfile-work.j2 b/.ansible/DOCKERFILES/Dockerfile-work.j2 index 450cc71..3983ea1 100644 --- a/.ansible/DOCKERFILES/Dockerfile-work.j2 +++ b/.ansible/DOCKERFILES/Dockerfile-work.j2 @@ -143,7 +143,7 @@ RUN set -eux \ {{ run_dep }} \ {% endfor %} && rm -rf /var/lib/apt/lists/* -{%- endif %} +{% endif %} ### ### Copy nvm diff --git a/.ansible/group_vars/all/slim.yml b/.ansible/group_vars/all/slim.yml index 6d41cf9..8279346 100644 --- a/.ansible/group_vars/all/slim.yml +++ b/.ansible/group_vars/all/slim.yml @@ -74,6 +74,9 @@ base_apt_repositories_enabled: # Software to install (in defined order) # ------------------------------------------------------------------------------------------------- base_software_enabled: + - dig # required by Devilbox Intranet + - netcat # required by Devilbox Intranet + - ping # required by Devilbox Intranet - blackfire - mhsendmail - mongo_client @@ -253,6 +256,33 @@ base_apt_repositories_available: # base_software_available: + ### + ### dig + ### + dig: + check: dig -v 2>&1 | grep -E '[0-9]\.[0-9]' + all: + type: apt + package: dnsutils + + ### + ### netcat + ### + netcat: + check: nc -h 2>&1 | grep netcat + all: + type: apt + package: netcat-openbsd + + ### + ### ping + ### + ping: + check: ping -V | grep ^ping + all: + type: apt + package: iputils-ping + ### ### Blackfire ### diff --git a/.ansible/group_vars/all/work-help.yml b/.ansible/group_vars/all/work-help.yml index 540c16a..c732035 100644 --- a/.ansible/group_vars/all/work-help.yml +++ b/.ansible/group_vars/all/work-help.yml @@ -59,6 +59,7 @@ help_software_available: && chmod +x /usr/local/bin/composer-2 \ post: | ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \ + run_dep: [unzip] # Required for composer to unzip packages 7.1: type: custom pre: | diff --git a/.ansible/group_vars/all/work.yml b/.ansible/group_vars/all/work.yml index b7b50e8..e5e2147 100644 --- a/.ansible/group_vars/all/work.yml +++ b/.ansible/group_vars/all/work.yml @@ -6,18 +6,35 @@ tools_enabled: - angular-cli - asgardcms + - eslint + - git + - jsonlint + - mdl + - awesome-ci - codeception - deployer - - eslint + - git-flow - grunt-cli - gulp - jq - - jsonlint + - laravel-installer + - linkcheck - lumen - - mdl + - mdlint + - php-cs-fixer + - phpcbf + - phpcs + - phpmd - phpunit + - pm2 - pwncat - - wpcli + - sass + - shellcheck + - stylelint + - symfony-cli + - vue-cli + - webpack-cli + - wp-cli - yamllint - yq @@ -51,42 +68,6 @@ tools_available: run_dep: [] pre: post: - codeception: - disabled: [5.2, 5.3] - check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) - all: - type: composer - composer: 2 - package: codeception/codeception - # version: - flags: - binary: codecept - build_dep: [] - run_dep: [] - # pre: - # post: - deployer: - disabled: [5.2, 5.3] - check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) - all: - type: custom - command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep - post: chmod +x /usr/local/bin/dep - 7.1: - type: custom - command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep - 7.0: - type: custom - command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep - 5.6: - type: custom - command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep - 5.5: - type: custom - command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep - 5.4: - type: custom - command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep eslint: disabled: [] check: eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) @@ -99,36 +80,12 @@ tools_available: run_dep: [] pre: post: - grunt-cli: + git: disabled: [] - check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) - all: - type: npm - package: "grunt-cli" - binary: grunt - version: - build_dep: [] - run_dep: [] - pre: - post: - gulp: - disabled: [] - check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) - all: - type: npm - package: gulp - binary: gulp - version: - build_dep: [] - run_dep: [] - pre: - post: - jq: - disabled: [] - check: jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) + check: git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) all: type: apt - package: jq + package: git jsonlint: disabled: [] check: jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) @@ -141,20 +98,6 @@ tools_available: run_dep: [] pre: post: - lumen: - disabled: [5.2, 5.3, 5.4] - check: lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) - all: - type: composer - composer: 2 - package: laravel/lumen-installer - # version: - flags: - binary: lumen - build_dep: [] - run_dep: [] - # pre: - # post: mdl: disabled: [] check: mdl --version | grep -E '[.0-9]+' || (mdl --version; false) @@ -206,6 +149,234 @@ tools_available: version: 0.5.0 pre: | gem install mixlib-config -v 2.2.4 \ + awesome-ci: + disabled: [] + check: regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) + all: + type: custom + command: | + git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + # moreutils: isutf8 + run_dep: [dos2unix, file, moreutils] + codeception: + disabled: [5.2, 5.3] + check: codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) + all: + type: composer + composer: 2 + package: codeception/codeception + # version: + flags: + binary: codecept + build_dep: [] + run_dep: [] + # pre: + # post: + deployer: + disabled: [5.2, 5.3] + check: dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) + all: + type: custom + command: curl -sS -k -L --fail https://deployer.org/deployer.phar -L -o /usr/local/bin/dep + post: chmod +x /usr/local/bin/dep + 7.1: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + 7.0: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v6.7.0/deployer.phar -L -o /usr/local/bin/dep + 5.6: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + 5.5: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v4.3.4/deployer.phar -L -o /usr/local/bin/dep + 5.4: + type: custom + command: curl -sS -k -L --fail https://deployer.org/releases/v3.3.0/deployer.phar -L -o /usr/local/bin/dep + git-flow: + disabled: [] + check: git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) + all: + type: custom + command: | + git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + grunt-cli: + disabled: [] + check: grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) + all: + type: npm + package: "grunt-cli" + binary: grunt + version: + build_dep: [] + run_dep: [] + pre: + post: + gulp: + disabled: [] + check: gulp --version | grep -E '[0-9][.0-9]+' || (gulp --version; false) + all: + type: npm + package: gulp + binary: gulp + version: + build_dep: [] + run_dep: [] + pre: + post: + jq: + disabled: [] + check: jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) + all: + type: apt + package: jq + laravel-installer: + disabled: [5.2, 5.3] + check: laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) + all: + type: composer + composer: 2 + package: laravel/installer + # version: + flags: + binary: bin/laravel + build_dep: [] + run_dep: [] + 7.2: + type: composer + version: 4.0.0 + 7.1: + type: composer + binary: laravel + version: 2.3.0 + 7.0: + type: composer + binary: laravel + version: 2.2.0 + 5.6: + type: composer + binary: laravel + version: 2.2.0 + 5.5: + type: composer + binary: laravel + version: 2.2.0 + 5.4: + type: composer + binary: laravel + version: 1.3.7 + linkcheck: + disabled: [] + check: linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) + all: + type: custom + command: curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck + post: chmod +x /usr/local/bin/linkcheck + build_dep: [] + run_dep: [] + lumen: + disabled: [5.2, 5.3, 5.4] + check: lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) + all: + type: composer + composer: 2 + package: laravel/lumen-installer + # version: + flags: + binary: lumen + build_dep: [] + run_dep: [] + # pre: + # post: + mdlint: + disabled: [] + check: mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) + all: + type: npm + package: mdlint + binary: mdlint + version: + build_dep: [] + run_dep: [] + pre: + post: + php-cs-fixer: + disabled: [5.2] + check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) + all: + type: custom + command: curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" + post: chmod +x /usr/local/bin/php-cs-fixer + 7.3: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + 7.2: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + 7.1: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + 7.0: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + 5.6: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + 5.5: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" + 5.4: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" + 5.3: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" + phpcbf: + disabled: [] + check: phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) + all: + type: custom + command: curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf + pre: PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" + post: chmod +x /usr/local/bin/phpcbf + 5.3: + type: custom + pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" + 5.2: + type: custom + pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" + phpcs: + disabled: [] + check: phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) + all: + type: custom + command: curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs + pre: PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" + post: chmod +x /usr/local/bin/phpcs + 5.3: + type: custom + pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" + 5.2: + type: custom + pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" + phpmd: + disabled: [5.2] + check: phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) + all: + type: custom + command: curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd + post: chmod +x /usr/local/bin/phpmd phpunit: disabled: [5.2] check: phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) @@ -243,6 +414,18 @@ tools_available: 5.3: type: custom pre: PHP_UNIT_VERSION="4" + pm2: + disabled: [] + check: pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) + all: + type: npm + package: pm2 + binary: pm2 + version: + build_dep: [] + run_dep: [] + pre: + post: pwncat: disabled: [] check: pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) @@ -254,8 +437,69 @@ tools_available: pre: post: | ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ - wpcli: + sass: + disabled: [] + check: sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) + all: + type: npm + package: sass + binary: sass + version: + build_dep: [] + run_dep: [] + pre: + post: + shellcheck: + disabled: [] + check: shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) + all: + type: apt + package: shellcheck + stylelint: + disabled: [] + check: stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) + all: + type: npm + package: stylelint + binary: stylelint + version: + build_dep: [] + run_dep: [] + pre: + post: + symfony-cli: + disabled: [] + check: symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) + all: + type: custom + command: curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin + build_dep: [] + run_dep: [] + vue-cli: + disabled: [] + check: vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) + all: + type: npm + package: "@vue/cli" + binary: vue + version: + build_dep: [] + run_dep: [] + pre: + post: + webpack-cli: + disabled: [] + check: webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) + all: + type: npm + package: webpack-cli + binary: webpack-cli + version: + build_dep: [] + run_dep: [] + pre: + post: + wp-cli: disabled: [5.2] check: wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) all: diff --git a/Dockerfiles/slim/Dockerfile-5.2 b/Dockerfiles/slim/Dockerfile-5.2 index 52a1fb7..2b5c48a 100644 --- a/Dockerfiles/slim/Dockerfile-5.2 +++ b/Dockerfiles/slim/Dockerfile-5.2 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -267,6 +294,18 @@ RUN set -eux \ FROM devilbox/php-fpm:5.2-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -413,6 +452,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-5.3 b/Dockerfiles/slim/Dockerfile-5.3 index a7c2ea3..3cb58e7 100644 --- a/Dockerfiles/slim/Dockerfile-5.3 +++ b/Dockerfiles/slim/Dockerfile-5.3 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -267,6 +294,18 @@ RUN set -eux \ FROM devilbox/php-fpm:5.3-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -413,6 +452,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-5.4 b/Dockerfiles/slim/Dockerfile-5.4 index b016cb6..bd54f4d 100644 --- a/Dockerfiles/slim/Dockerfile-5.4 +++ b/Dockerfiles/slim/Dockerfile-5.4 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -267,6 +294,18 @@ RUN set -eux \ FROM devilbox/php-fpm:5.4-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -413,6 +452,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-5.5 b/Dockerfiles/slim/Dockerfile-5.5 index eaba186..8de2060 100644 --- a/Dockerfiles/slim/Dockerfile-5.5 +++ b/Dockerfiles/slim/Dockerfile-5.5 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -267,6 +294,18 @@ RUN set -eux \ FROM devilbox/php-fpm:5.5-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -413,6 +452,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-5.6 b/Dockerfiles/slim/Dockerfile-5.6 index df6312e..51bf973 100644 --- a/Dockerfiles/slim/Dockerfile-5.6 +++ b/Dockerfiles/slim/Dockerfile-5.6 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -271,6 +298,18 @@ RUN set -eux \ FROM devilbox/php-fpm:5.6-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -417,6 +456,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-7.0 b/Dockerfiles/slim/Dockerfile-7.0 index e666f99..703d19c 100644 --- a/Dockerfiles/slim/Dockerfile-7.0 +++ b/Dockerfiles/slim/Dockerfile-7.0 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -271,6 +298,18 @@ RUN set -eux \ FROM devilbox/php-fpm:7.0-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -417,6 +456,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-7.1 b/Dockerfiles/slim/Dockerfile-7.1 index dc3c088..4f3b340 100644 --- a/Dockerfiles/slim/Dockerfile-7.1 +++ b/Dockerfiles/slim/Dockerfile-7.1 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:7.1-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-7.2 b/Dockerfiles/slim/Dockerfile-7.2 index f9eaec3..5ae5160 100644 --- a/Dockerfiles/slim/Dockerfile-7.2 +++ b/Dockerfiles/slim/Dockerfile-7.2 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:7.2-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-7.3 b/Dockerfiles/slim/Dockerfile-7.3 index 0e2b30c..dde2a20 100644 --- a/Dockerfiles/slim/Dockerfile-7.3 +++ b/Dockerfiles/slim/Dockerfile-7.3 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:7.3-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-7.4 b/Dockerfiles/slim/Dockerfile-7.4 index eb65e6c..02c7106 100644 --- a/Dockerfiles/slim/Dockerfile-7.4 +++ b/Dockerfiles/slim/Dockerfile-7.4 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:7.4-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-8.0 b/Dockerfiles/slim/Dockerfile-8.0 index 28de8fd..479429e 100644 --- a/Dockerfiles/slim/Dockerfile-8.0 +++ b/Dockerfiles/slim/Dockerfile-8.0 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:8.0-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-8.1 b/Dockerfiles/slim/Dockerfile-8.1 index de2b728..8498d57 100644 --- a/Dockerfiles/slim/Dockerfile-8.1 +++ b/Dockerfiles/slim/Dockerfile-8.1 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:8.1-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/slim/Dockerfile-8.2 b/Dockerfiles/slim/Dockerfile-8.2 index 192598a..96ea6ea 100644 --- a/Dockerfiles/slim/Dockerfile-8.2 +++ b/Dockerfiles/slim/Dockerfile-8.2 @@ -45,7 +45,7 @@ RUN set -eux \ libsnappy-dev \ && rm -rf /var/lib/apt/lists/* ### -### Add common build tools +### Add common tools ### RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ @@ -56,10 +56,37 @@ RUN set -eux \ redis-tools \ sqlite3 +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Devilbox required cli tools from group_vars (slim.yml) ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && apt-get update \ @@ -265,6 +292,18 @@ RUN set -eux \ FROM devilbox/php-fpm:8.2-prod as devilbox-slim-base ARG ARCH +### +### Install tools type: apt +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + # ---------- type: apt ---------- + dnsutils \ + iputils-ping \ + netcat-openbsd \ + && rm -rf /var/lib/apt/lists/* + ### ### Copy shared libraries (required by MongoDB, MySQL, PostgreSQL and Redis) ### @@ -411,6 +450,21 @@ RUN set -eux \ ### Check if available tools slim ### +# -------------------- dig -------------------- +RUN set -eux \ + && dig -v 2>&1 | grep -E '[0-9]\.[0-9]' \ + && true + +# -------------------- netcat -------------------- +RUN set -eux \ + && nc -h 2>&1 | grep netcat \ + && true + +# -------------------- ping -------------------- +RUN set -eux \ + && ping -V | grep ^ping \ + && true + # -------------------- blackfire -------------------- RUN set -eux \ && blackfire version \ diff --git a/Dockerfiles/work/Dockerfile-5.2 b/Dockerfiles/work/Dockerfile-5.2 index c57eb7c..9e9873c 100644 --- a/Dockerfiles/work/Dockerfile-5.2 +++ b/Dockerfiles/work/Dockerfile-5.2 @@ -230,9 +230,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -253,6 +258,49 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + +# -------------------- (custom) git-flow -------------------- +RUN set -eux \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ + && true + # -------------------- (npm) grunt-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ @@ -272,30 +320,90 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ && true # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + # -------------------- (pip) yamllint -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall yamllint \ @@ -338,9 +446,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -397,6 +510,31 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + +# -------------------- (custom) git-flow -------------------- +RUN set -eux \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ + && true + # -------------------- (npm) grunt-cli -------------------- RUN set -eux \ && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ @@ -412,14 +550,29 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ && true # -------------------- (pip) pwncat -------------------- @@ -427,6 +580,36 @@ RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + # -------------------- (pip) yamllint -------------------- RUN set -eux \ && yamllint --version 2>&1 | grep -E '[0-9][.0-9]+' || (yamllint --version; false) \ diff --git a/Dockerfiles/work/Dockerfile-5.3 b/Dockerfiles/work/Dockerfile-5.3 index 242f7e7..0712ba8 100644 --- a/Dockerfiles/work/Dockerfile-5.3 +++ b/Dockerfiles/work/Dockerfile-5.3 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:5.3-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -272,6 +292,49 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + +# -------------------- (custom) git-flow -------------------- +RUN set -eux \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ + && true + # -------------------- (npm) grunt-cli -------------------- RUN set -eux \ && su -c '. /opt/nvm/nvm.sh; npm install -g --force grunt-cli' devilbox \ @@ -291,19 +354,49 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -320,16 +413,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v1.5.1/wp-cli-1.5.1.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -379,9 +517,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -438,6 +581,31 @@ RUN set -eux \ && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ && true +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + +# -------------------- (custom) git-flow -------------------- +RUN set -eux \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ + && true + # -------------------- (npm) grunt-cli -------------------- RUN set -eux \ && grunt --version | grep -E '[0-9][.0-9]+' || (grunt --version; false) \ @@ -453,14 +621,34 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -468,12 +656,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-5.4 b/Dockerfiles/work/Dockerfile-5.4 index 953ae6b..69df97f 100644 --- a/Dockerfiles/work/Dockerfile-5.4 +++ b/Dockerfiles/work/Dockerfile-5.4 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:5.4-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -265,6 +285,46 @@ RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -280,11 +340,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -306,19 +369,57 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:1.3.7 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ + && true + +# -------------------- (npm) mdlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -335,16 +436,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -394,9 +540,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -448,6 +599,31 @@ RUN set -eux \ && ng version 2>&1 | grep -iE 'Angular CLI:\s*[0-9][.0-9]+' || (ng version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -458,9 +634,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -478,14 +654,39 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (custom) linkcheck -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ + && true + +# -------------------- (npm) mdlint -------------------- +RUN set -eux \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -493,12 +694,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-5.5 b/Dockerfiles/work/Dockerfile-5.5 index 049943c..43e56b1 100644 --- a/Dockerfiles/work/Dockerfile-5.5 +++ b/Dockerfiles/work/Dockerfile-5.5 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:5.5-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -273,6 +293,46 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -288,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -314,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:2.2.0 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -329,12 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -351,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://github.com/wp-cli/wp-cli/releases/download/v2.4.0/wp-cli-2.4.0.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -410,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -469,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -479,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -499,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -509,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -519,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-5.6 b/Dockerfiles/work/Dockerfile-5.6 index 9ec18a8..e177ea7 100644 --- a/Dockerfiles/work/Dockerfile-5.6 +++ b/Dockerfiles/work/Dockerfile-5.6 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:5.6-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -273,6 +293,46 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -288,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -314,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:2.2.0 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -329,12 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -351,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -410,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -469,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -479,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -499,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -509,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -519,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-7.0 b/Dockerfiles/work/Dockerfile-7.0 index 7f3cc08..7dc5278 100644 --- a/Dockerfiles/work/Dockerfile-7.0 +++ b/Dockerfiles/work/Dockerfile-7.0 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:7.0-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -273,6 +293,46 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mixlib-config -v 2.2.4 \ + \ + && gem install mdl -v 0.5.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -288,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -314,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:2.2.0 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -329,12 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mixlib-config -v 2.2.4 \ - \ - && gem install mdl -v 0.5.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -351,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -410,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -469,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -479,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -499,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -509,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -519,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-7.1 b/Dockerfiles/work/Dockerfile-7.1 index ac96f04..b151e38 100644 --- a/Dockerfiles/work/Dockerfile-7.1 +++ b/Dockerfiles/work/Dockerfile-7.1 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:7.1-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -273,6 +293,46 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install chef-utils -v 16.6.14 \ + \ + && gem install mdl -v 0.11.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -288,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -314,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:2.3.0 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -329,12 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install chef-utils -v 16.6.14 \ - \ - && gem install mdl -v 0.11.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -351,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -410,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -469,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -479,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -499,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -509,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -519,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-7.2 b/Dockerfiles/work/Dockerfile-7.2 index 10276a3..d867e5f 100644 --- a/Dockerfiles/work/Dockerfile-7.2 +++ b/Dockerfiles/work/Dockerfile-7.2 @@ -22,7 +22,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ libpython-dev \ && rm -rf /var/lib/apt/lists/* - +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) ### @@ -142,6 +149,14 @@ RUN set -eux \ ### FROM devilbox/php-fpm:7.2-slim as devilbox-work-help +### +### Install run_dep +### +RUN set -eux \ + && DEBIAN_FRONTEND=noninteractive apt-get update \ + && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ + unzip \ + && rm -rf /var/lib/apt/lists/* ### ### Copy nvm @@ -249,9 +264,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -273,6 +293,46 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install chef-utils -v 16.6.14 \ + \ + && gem install mdl -v 0.11.0 \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -288,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -314,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer:4.0.0 \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -329,12 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install chef-utils -v 16.6.14 \ - \ - && gem install mdl -v 0.11.0 \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -351,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -410,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -469,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -479,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -499,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -509,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -519,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-7.3 b/Dockerfiles/work/Dockerfile-7.3 index 9d8d85d..7a0117d 100644 --- a/Dockerfiles/work/Dockerfile-7.3 +++ b/Dockerfiles/work/Dockerfile-7.3 @@ -29,6 +29,7 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) @@ -156,7 +157,9 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* + ### ### Copy nvm ### @@ -263,9 +266,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -287,6 +295,44 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mdl \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -302,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -328,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -343,10 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mdl \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -363,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -422,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -481,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -491,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -511,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -521,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -531,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-7.4 b/Dockerfiles/work/Dockerfile-7.4 index ae091f2..3b56de5 100644 --- a/Dockerfiles/work/Dockerfile-7.4 +++ b/Dockerfiles/work/Dockerfile-7.4 @@ -29,6 +29,7 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) @@ -156,7 +157,9 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* + ### ### Copy nvm ### @@ -263,9 +266,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -287,6 +295,44 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mdl \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -302,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -328,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -343,10 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mdl \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -363,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -422,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -481,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -491,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -511,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -521,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -531,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-8.0 b/Dockerfiles/work/Dockerfile-8.0 index 7f0b847..e033bf7 100644 --- a/Dockerfiles/work/Dockerfile-8.0 +++ b/Dockerfiles/work/Dockerfile-8.0 @@ -29,6 +29,7 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) @@ -156,7 +157,9 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* + ### ### Copy nvm ### @@ -263,9 +266,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -287,6 +295,44 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mdl \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -302,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -328,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -343,10 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mdl \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -363,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -422,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -481,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -491,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -511,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -521,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -531,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-8.1 b/Dockerfiles/work/Dockerfile-8.1 index 25721e9..834dbd7 100644 --- a/Dockerfiles/work/Dockerfile-8.1 +++ b/Dockerfiles/work/Dockerfile-8.1 @@ -29,6 +29,7 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) @@ -156,7 +157,9 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* + ### ### Copy nvm ### @@ -263,9 +266,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -287,6 +295,44 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mdl \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -302,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -328,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -343,10 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mdl \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -363,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -422,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -481,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -491,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -511,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -521,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -531,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/Dockerfiles/work/Dockerfile-8.2 b/Dockerfiles/work/Dockerfile-8.2 index 58cda66..a8a5415 100644 --- a/Dockerfiles/work/Dockerfile-8.2 +++ b/Dockerfiles/work/Dockerfile-8.2 @@ -29,6 +29,7 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* ### ### Devilbox required helper tools from group_vars (work-help.yml) @@ -156,7 +157,9 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ python3-distutils \ + unzip \ && rm -rf /var/lib/apt/lists/* + ### ### Copy nvm ### @@ -263,9 +266,14 @@ RUN set -eux \ # ---------- build_deps ---------- ruby-dev \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -287,6 +295,44 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && gem install mdl \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache codeception/codeception \ @@ -302,11 +348,14 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force eslint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/eslint /usr/local/bin/ \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ + \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -328,11 +377,19 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && su -c '. /opt/nvm/nvm.sh; npm install -g --force jsonlint' devilbox \ - && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/jsonlint /usr/local/bin/ \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && COMPOSER_HOME="/usr/local/src/composer" COMPOSER_MEMORY_LIMIT=-1 /usr/local/bin/composer-2 global require --no-interaction --no-cache laravel/installer \ + && ln -s /usr/local/src/composer/vendor/laravel/installer/bin/laravel /usr/local/bin/ \ + && rm -rf /usr/local/src/composer/cache/* \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck \ + && chmod +x /usr/local/bin/linkcheck \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -343,10 +400,42 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && gem install mdl \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force mdlint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/mdlint /usr/local/bin/ \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" \ + && curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer \ + && chmod +x /usr/local/bin/php-cs-fixer \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" \ + && curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf \ + && chmod +x /usr/local/bin/phpcbf \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" \ + && curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs \ + && chmod +x /usr/local/bin/phpcs \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd \ + && chmod +x /usr/local/bin/phpmd \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -363,16 +452,61 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force pm2' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/pm2 /usr/local/bin/ \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pip install --no-cache-dir --no-compile --force-reinstall pwncat \ && ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force sass' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/sass /usr/local/bin/ \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force stylelint' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/stylelint /usr/local/bin/ \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force @vue/cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/vue /usr/local/bin/ \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && su -c '. /opt/nvm/nvm.sh; npm install -g --force webpack-cli' devilbox \ + && ln -s /opt/nvm/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/bin/webpack-cli /usr/local/bin/ \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && WPCLI_URL="https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" \ && curl -sS -L --fail "${WPCLI_URL}" -L -o /usr/local/bin/wp \ @@ -422,9 +556,14 @@ RUN set -eux \ && DEBIAN_FRONTEND=noninteractive apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \ # ---------- run_deps ---------- + dos2unix \ + file \ + moreutils \ ruby \ # ---------- type: apt ---------- + git \ jq \ + shellcheck \ && rm -rf /var/lib/apt/lists/* ### @@ -481,6 +620,31 @@ RUN set -eux \ && asgardcms --version 2>/dev/null | grep -Ei 'AsgardCMS\sInstaller\s[0-9][.0-9]+' || (asgardcms --version; false) \ && true +# -------------------- (npm) eslint -------------------- +RUN set -eux \ + && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && true + +# -------------------- (apt) git -------------------- +RUN set -eux \ + && git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) \ + && true + +# -------------------- (npm) jsonlint -------------------- +RUN set -eux \ + && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && true + +# -------------------- (rubygem) mdl -------------------- +RUN set -eux \ + && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && true + +# -------------------- (custom) awesome-ci -------------------- +RUN set -eux \ + && regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) \ + && true + # -------------------- (composer) codeception -------------------- RUN set -eux \ && codecept --version 2>/dev/null | grep -E '^Codeception(\sversion)?\s[0-9][.0-9]+$' || (codecept --version; false) \ @@ -491,9 +655,9 @@ RUN set -eux \ && dep --version 2>/dev/null | grep -Ei 'deployer\s*(version\s*)?[0-9][.0-9]+' || (dep --version; false) \ && true -# -------------------- (npm) eslint -------------------- +# -------------------- (custom) git-flow -------------------- RUN set -eux \ - && eslint -v | grep -E '[0-9][.0-9]+' || (eslint -v; false) \ + && git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) \ && true # -------------------- (npm) grunt-cli -------------------- @@ -511,9 +675,14 @@ RUN set -eux \ && jq --version 2>&1 | grep -E '[0-9][.0-9]+' || (jq --version; false) \ && true -# -------------------- (npm) jsonlint -------------------- +# -------------------- (composer) laravel-installer -------------------- RUN set -eux \ - && jsonlint --version | grep -E '[0-9][.0-9]+' || (jsonlint --version; false) \ + && laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) \ + && true + +# -------------------- (custom) linkcheck -------------------- +RUN set -eux \ + && linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) \ && true # -------------------- (composer) lumen -------------------- @@ -521,9 +690,29 @@ RUN set -eux \ && lumen --version 2>/dev/null | grep -E '^Lumen Installer\s[0-9][.0-9]+$' || (lumen --version; false) \ && true -# -------------------- (rubygem) mdl -------------------- +# -------------------- (npm) mdlint -------------------- RUN set -eux \ - && mdl --version | grep -E '[.0-9]+' || (mdl --version; false) \ + && mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) \ + && true + +# -------------------- (custom) php-cs-fixer -------------------- +RUN set -eux \ + && php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) \ + && true + +# -------------------- (custom) phpcbf -------------------- +RUN set -eux \ + && phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) \ + && true + +# -------------------- (custom) phpcs -------------------- +RUN set -eux \ + && phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) \ + && true + +# -------------------- (custom) phpmd -------------------- +RUN set -eux \ + && phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) \ && true # -------------------- (custom) phpunit -------------------- @@ -531,12 +720,47 @@ RUN set -eux \ && phpunit --version | grep -iE '^PHPUnit\s[0-9][.0-9]+' || (phpunit --version; false) \ && true +# -------------------- (npm) pm2 -------------------- +RUN set -eux \ + && pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) \ + && true + # -------------------- (pip) pwncat -------------------- RUN set -eux \ && pwncat --version 2>&1 | grep -E 'Version [0-9][.0-9]+' || (pwncat --version; false) \ && true -# -------------------- (custom) wpcli -------------------- +# -------------------- (npm) sass -------------------- +RUN set -eux \ + && sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) \ + && true + +# -------------------- (apt) shellcheck -------------------- +RUN set -eux \ + && shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) \ + && true + +# -------------------- (npm) stylelint -------------------- +RUN set -eux \ + && stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) \ + && true + +# -------------------- (custom) symfony-cli -------------------- +RUN set -eux \ + && symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) \ + && true + +# -------------------- (npm) vue-cli -------------------- +RUN set -eux \ + && vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) \ + && true + +# -------------------- (npm) webpack-cli -------------------- +RUN set -eux \ + && webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) \ + && true + +# -------------------- (custom) wp-cli -------------------- RUN set -eux \ && wp --allow-root --version | grep -E '[0-9][.0-9]+' || (wp --allow-root --version; false) \ && true diff --git a/bin/gen-docs-php-tools.py b/bin/gen-docs-php-tools.py index 3c783ba..b4fc83d 100755 --- a/bin/gen-docs-php-tools.py +++ b/bin/gen-docs-php-tools.py @@ -35,13 +35,13 @@ PHP_VERSIONS = [ ] DEFAULT_TOOLS = [ - {"name": "**composer**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**corepack**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**nvm**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**npm**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**node**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**yarn**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, - {"name": "**pip**", "dir": "../.ansible/group_vars/all/work-help.yml", "exclude": []}, + {"name": "**composer**", "dir": "https://getcomposer.org/", "exclude": []}, + {"name": "**corepack**", "dir": "https://nodejs.org/api/corepack.html", "exclude": []}, + {"name": "**nvm**", "dir": "https://github.com/nvm-sh/nvm", "exclude": []}, + {"name": "**npm**", "dir": "https://nodejs.org/en/knowledge/getting-started/npm/what-is-npm/", "exclude": []}, + {"name": "**node**", "dir": "https://nodejs.org/en/", "exclude": []}, + {"name": "**yarn**", "dir": "https://yarnpkg.com/cli/install", "exclude": []}, + {"name": "**pip**", "dir": "https://pypi.org/", "exclude": []}, ] @@ -115,7 +115,7 @@ def get_tools() -> List[Dict[str, Any]]: def print_terminal(tools: List[Dict[str, Any]]) -> None: """Print directory tools.""" - padding = 15 + padding = 18 # First Row print("| {name: <{padding}}| ".format(name="Tool", padding=padding), end="") print(" | ".join(PHP_VERSIONS), end="") @@ -137,16 +137,16 @@ def print_terminal(tools: List[Dict[str, Any]]) -> None: def get_markdown(tools: List[Dict[str, Any]]) -> str: """Get markdown tools table.""" - padding = 35 + padding = 43 # First Row - markdown = "| {name: <{padding}}| ".format(name="Tool", padding=padding) - markdown += " | ".join(PHP_VERSIONS) + markdown = "| {name: <{padding}}| PHP ".format(name="Tool", padding=padding) + markdown += " | PHP ".join(PHP_VERSIONS) markdown += " |\n" # Second Row markdown += "|{name:-<{padding}}-|".format(name="", padding=padding) for php in PHP_VERSIONS: - markdown += "-----|" + markdown += "---------|" markdown += "\n" for tool in tools: markdown += "| {name: <{padding}}|".format( @@ -154,9 +154,9 @@ def get_markdown(tools: List[Dict[str, Any]]) -> str: ) for php in PHP_VERSIONS: if str(php) in tool["exclude"]: - markdown += " |" + markdown += " |" else: - markdown += " ✓ |" + markdown += " 🗸 |" markdown += "\n" markdown += "\n" diff --git a/doc/available-tools.md b/doc/available-tools.md index 090ab5c..03491cb 100644 --- a/doc/available-tools.md +++ b/doc/available-tools.md @@ -137,7 +137,23 @@ The following PHP cli tools are available on the `slim` flavour: 🗸 - mhsendmail + dig + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + + + mhsendmail 🗸 🗸 🗸 @@ -153,7 +169,7 @@ The following PHP cli tools are available on the `slim` flavour: 🗸 - mysqldump-secure + mysqldump-secure 🗸 🗸 🗸 @@ -168,6 +184,38 @@ The following PHP cli tools are available on the `slim` flavour: 🗸 🗸 + + netcat + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + + + ping + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + 🗸 + > :exclamation: **\[1\]** Not available on `arm64` Docker image. @@ -183,54 +231,88 @@ Additionally to all of the `slim` tools shown above, the following PHP cli tools -| Tool | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 7.0 | 7.1 | 7.2 | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 | -|------------------------------------|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----| -| [angular-cli][lnk_angular-cli] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [asgardcms][lnk_asgardcms] | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [codeception][lnk_codeception] | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**composer**][lnk_**composer**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**corepack**][lnk_**corepack**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [deployer][lnk_deployer] | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [eslint][lnk_eslint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [grunt-cli][lnk_grunt-cli] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [gulp][lnk_gulp] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [jq][lnk_jq] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [jsonlint][lnk_jsonlint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [lumen][lnk_lumen] | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [mdl][lnk_mdl] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**node**][lnk_**node**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**npm**][lnk_**npm**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**nvm**][lnk_**nvm**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [phpunit][lnk_phpunit] | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**pip**][lnk_**pip**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [pwncat][lnk_pwncat] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [wpcli][lnk_wpcli] | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [yamllint][lnk_yamllint] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [**yarn**][lnk_**yarn**] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| [yq][lnk_yq] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Tool | PHP 5.2 | PHP 5.3 | PHP 5.4 | PHP 5.5 | PHP 5.6 | PHP 7.0 | PHP 7.1 | PHP 7.2 | PHP 7.3 | PHP 7.4 | PHP 8.0 | PHP 8.1 | PHP 8.2 | +|--------------------------------------------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------|---------| +| [angular-cli][lnk_angular-cli] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [asgardcms][lnk_asgardcms] | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [awesome-ci][lnk_awesome-ci] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [codeception][lnk_codeception] | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**composer**][lnk_**composer**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**corepack**][lnk_**corepack**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [deployer][lnk_deployer] | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [eslint][lnk_eslint] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [git][lnk_git] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [git-flow][lnk_git-flow] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [grunt-cli][lnk_grunt-cli] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [gulp][lnk_gulp] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [jq][lnk_jq] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [jsonlint][lnk_jsonlint] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [laravel-installer][lnk_laravel-installer] | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [linkcheck][lnk_linkcheck] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [lumen][lnk_lumen] | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [mdl][lnk_mdl] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [mdlint][lnk_mdlint] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**node**][lnk_**node**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**npm**][lnk_**npm**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**nvm**][lnk_**nvm**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [php-cs-fixer][lnk_php-cs-fixer] | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [phpcbf][lnk_phpcbf] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [phpcs][lnk_phpcs] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [phpmd][lnk_phpmd] | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [phpunit][lnk_phpunit] | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**pip**][lnk_**pip**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [pm2][lnk_pm2] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [pwncat][lnk_pwncat] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [sass][lnk_sass] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [shellcheck][lnk_shellcheck] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [stylelint][lnk_stylelint] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [symfony-cli][lnk_symfony-cli] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [vue-cli][lnk_vue-cli] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [webpack-cli][lnk_webpack-cli] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [wp-cli][lnk_wp-cli] | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [yamllint][lnk_yamllint] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [**yarn**][lnk_**yarn**] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | +| [yq][lnk_yq] | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | [lnk_angular-cli]: ../php_tools/angular-cli [lnk_asgardcms]: ../php_tools/asgardcms +[lnk_awesome-ci]: ../php_tools/awesome-ci [lnk_codeception]: ../php_tools/codeception -[lnk_**composer**]: ../.ansible/group_vars/all/work-help.yml -[lnk_**corepack**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**composer**]: https://getcomposer.org/ +[lnk_**corepack**]: https://nodejs.org/api/corepack.html [lnk_deployer]: ../php_tools/deployer [lnk_eslint]: ../php_tools/eslint +[lnk_git]: ../php_tools/git +[lnk_git-flow]: ../php_tools/git-flow [lnk_grunt-cli]: ../php_tools/grunt-cli [lnk_gulp]: ../php_tools/gulp [lnk_jq]: ../php_tools/jq [lnk_jsonlint]: ../php_tools/jsonlint +[lnk_laravel-installer]: ../php_tools/laravel-installer +[lnk_linkcheck]: ../php_tools/linkcheck [lnk_lumen]: ../php_tools/lumen [lnk_mdl]: ../php_tools/mdl -[lnk_**node**]: ../.ansible/group_vars/all/work-help.yml -[lnk_**npm**]: ../.ansible/group_vars/all/work-help.yml -[lnk_**nvm**]: ../.ansible/group_vars/all/work-help.yml +[lnk_mdlint]: ../php_tools/mdlint +[lnk_**node**]: https://nodejs.org/en/ +[lnk_**npm**]: https://nodejs.org/en/knowledge/getting-started/npm/what-is-npm/ +[lnk_**nvm**]: https://github.com/nvm-sh/nvm +[lnk_php-cs-fixer]: ../php_tools/php-cs-fixer +[lnk_phpcbf]: ../php_tools/phpcbf +[lnk_phpcs]: ../php_tools/phpcs +[lnk_phpmd]: ../php_tools/phpmd [lnk_phpunit]: ../php_tools/phpunit -[lnk_**pip**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**pip**]: https://pypi.org/ +[lnk_pm2]: ../php_tools/pm2 [lnk_pwncat]: ../php_tools/pwncat -[lnk_wpcli]: ../php_tools/wpcli +[lnk_sass]: ../php_tools/sass +[lnk_shellcheck]: ../php_tools/shellcheck +[lnk_stylelint]: ../php_tools/stylelint +[lnk_symfony-cli]: ../php_tools/symfony-cli +[lnk_vue-cli]: ../php_tools/vue-cli +[lnk_webpack-cli]: ../php_tools/webpack-cli +[lnk_wp-cli]: ../php_tools/wp-cli [lnk_yamllint]: ../php_tools/yamllint -[lnk_**yarn**]: ../.ansible/group_vars/all/work-help.yml +[lnk_**yarn**]: https://yarnpkg.com/cli/install [lnk_yq]: ../php_tools/yq diff --git a/php_tools/awesome-ci/README.md b/php_tools/awesome-ci/README.md new file mode 100644 index 0000000..45535ba --- /dev/null +++ b/php_tools/awesome-ci/README.md @@ -0,0 +1,9 @@ +# awesome-ci + +Continuous Integration command line tools for git repositories, file characteristics, syntax errors and static source code analysis. + +Awesome-CI is capable of finding various problems in your code repository as well as fixing them automatically. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/cytopia/awesome-ci/ | diff --git a/php_tools/awesome-ci/install.yml b/php_tools/awesome-ci/install.yml new file mode 100644 index 0000000..835347c --- /dev/null +++ b/php_tools/awesome-ci/install.yml @@ -0,0 +1,16 @@ +--- + +check: regex-grep --version | grep -E '[0-9][.0-9]+' || (regex-grep --version; false) + +all: + type: custom + command: | + git clone https://github.com/cytopia/awesome-ci.git /tmp/awesome-ci \ + && cd /tmp/awesome-ci \ + && git checkout $(git describe --abbrev=0 --tags) \ + && ./configure --prefix=/usr/local \ + && make install \ + && cd / \ + && rm -rf /tmp/awesome-ci \ + # moreutils: isutf8 + run_dep: [dos2unix, file, moreutils] diff --git a/php_tools/awesome-ci/options.yml b/php_tools/awesome-ci/options.yml new file mode 100644 index 0000000..064e93d --- /dev/null +++ b/php_tools/awesome-ci/options.yml @@ -0,0 +1,15 @@ +--- + +# The name of the module +name: awesome-ci + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: + - eslint + - git + - jsonlint + - mdl diff --git a/php_tools/git-flow/README.md b/php_tools/git-flow/README.md new file mode 100644 index 0000000..c52f623 --- /dev/null +++ b/php_tools/git-flow/README.md @@ -0,0 +1,7 @@ +# git-flow + +A collection of Git extensions to provide high-level repository operations for Vincent Driessen's branching model. This fork adds functionality not added to the original branch. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/petervanderdoes/gitflow-avh | diff --git a/php_tools/git-flow/install.yml b/php_tools/git-flow/install.yml new file mode 100644 index 0000000..de7e71b --- /dev/null +++ b/php_tools/git-flow/install.yml @@ -0,0 +1,11 @@ +--- + +check: git-flow version 2>&1 | grep -E '[0-9][.0-9]+' || (git-flow version; false) + +all: + type: custom + command: | + git clone https://github.com/petervanderdoes/gitflow-avh /tmp/gitflow \ + && cd /tmp/gitflow \ + && make install \ + && cd / && rm -rf /tmp/gitflow \ diff --git a/php_tools/git-flow/options.yml b/php_tools/git-flow/options.yml new file mode 100644 index 0000000..23a9241 --- /dev/null +++ b/php_tools/git-flow/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: git-flow + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [git] diff --git a/php_tools/git/README.md b/php_tools/git/README.md new file mode 100644 index 0000000..4550f5e --- /dev/null +++ b/php_tools/git/README.md @@ -0,0 +1,7 @@ +# Git + +Git - fast, scalable, distributed revision control system. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/git/git | diff --git a/php_tools/git/install.yml b/php_tools/git/install.yml new file mode 100644 index 0000000..8dba045 --- /dev/null +++ b/php_tools/git/install.yml @@ -0,0 +1,7 @@ +--- + +check: git --version 2>&1 | grep -E '[0-9][.0-9]+' || (git --version; false) + +all: + type: apt + package: git diff --git a/php_tools/git/options.yml b/php_tools/git/options.yml new file mode 100644 index 0000000..299f498 --- /dev/null +++ b/php_tools/git/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: git + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/jsonlint/README.md b/php_tools/jsonlint/README.md index 95f8f11..7845995 100644 --- a/php_tools/jsonlint/README.md +++ b/php_tools/jsonlint/README.md @@ -5,4 +5,4 @@ A pure JavaScript version of the service provided at jsonlint.com. | Platform | Url | |----------|------------------------------------------------------------------| | NPM | https://www.npmjs.com/package/jsonlint | -| GitHub | npm i jsonlint | +| GitHub | https://github.com/zaach/jsonlint | diff --git a/php_tools/laravel-installer/README.md b/php_tools/laravel-installer/README.md new file mode 100644 index 0000000..f6c0505 --- /dev/null +++ b/php_tools/laravel-installer/README.md @@ -0,0 +1,8 @@ +# Laravel Installer + +Laravel application installer. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| Composer | https://packagist.org/packages/laravel/installer | +| GitHub | https://github.com/laravel/installer | diff --git a/php_tools/laravel-installer/install.yml b/php_tools/laravel-installer/install.yml new file mode 100644 index 0000000..b406a79 --- /dev/null +++ b/php_tools/laravel-installer/install.yml @@ -0,0 +1,42 @@ +--- + +check: laravel --version | grep -E '^Laravel Installer\s[0-9][.0-9]+$' || (laravel --version; false) + +all: + type: composer + composer: 2 + package: laravel/installer + # version: + flags: + binary: bin/laravel + build_dep: [] + run_dep: [] + +7.2: + type: composer + version: 4.0.0 + +7.1: + type: composer + binary: laravel + version: 2.3.0 + +7.0: + type: composer + binary: laravel + version: 2.2.0 + +5.6: + type: composer + binary: laravel + version: 2.2.0 + +5.5: + type: composer + binary: laravel + version: 2.2.0 + +5.4: + type: composer + binary: laravel + version: 1.3.7 diff --git a/php_tools/laravel-installer/options.yml b/php_tools/laravel-installer/options.yml new file mode 100644 index 0000000..8deb669 --- /dev/null +++ b/php_tools/laravel-installer/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: laravel-installer + +# Exclude module build/installation for the following PHP versions +exclude: [5.2, 5.3] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/linkcheck/README.md b/php_tools/linkcheck/README.md new file mode 100644 index 0000000..3556253 --- /dev/null +++ b/php_tools/linkcheck/README.md @@ -0,0 +1,7 @@ +# linkcheck + +linkcheck was created in order to ensure that none of your files have broken links. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/cytopia/linkcheck | diff --git a/php_tools/linkcheck/install.yml b/php_tools/linkcheck/install.yml new file mode 100644 index 0000000..306341e --- /dev/null +++ b/php_tools/linkcheck/install.yml @@ -0,0 +1,10 @@ +--- + +check: linkcheck --version | grep -E 'v[0-9][.0-9]+' || (linkcheck --version; false) + +all: + type: custom + command: curl -sS -L --fail -o /usr/local/bin/linkcheck https://raw.githubusercontent.com/cytopia/linkcheck/master/linkcheck + post: chmod +x /usr/local/bin/linkcheck + build_dep: [] + run_dep: [] diff --git a/php_tools/linkcheck/options.yml b/php_tools/linkcheck/options.yml new file mode 100644 index 0000000..7cae845 --- /dev/null +++ b/php_tools/linkcheck/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: linkcheck + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/mdlint/README.md b/php_tools/mdlint/README.md new file mode 100644 index 0000000..9962313 --- /dev/null +++ b/php_tools/mdlint/README.md @@ -0,0 +1,8 @@ +# mdlint + +Lint JavaScript code blocks in markdown files to find syntax errors. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/mdlint | +| GitHub | https://github.com/ChrisWren/mdlint | diff --git a/php_tools/mdlint/install.yml b/php_tools/mdlint/install.yml new file mode 100644 index 0000000..e644d43 --- /dev/null +++ b/php_tools/mdlint/install.yml @@ -0,0 +1,13 @@ +--- + +check: mdlint --version | grep -E '[0-9][.0-9]+' || (mdlint --version; false) + +all: + type: npm + package: mdlint + binary: mdlint + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/mdlint/options.yml b/php_tools/mdlint/options.yml new file mode 100644 index 0000000..522ea64 --- /dev/null +++ b/php_tools/mdlint/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: mdlint + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/php-cs-fixer/README.md b/php_tools/php-cs-fixer/README.md new file mode 100644 index 0000000..8896d08 --- /dev/null +++ b/php_tools/php-cs-fixer/README.md @@ -0,0 +1,8 @@ +# PHP Coding Standards Fixer + +The PHP Coding Standards Fixer (PHP CS Fixer) tool fixes your code to follow standards; whether you want to follow PHP coding standards as defined in the PSR-1, PSR-2, etc., or other community driven ones like the Symfony one. You can also define your (team's) style through configuration. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/PHP-CS-Fixer/PHP-CS-Fixer | +| Website | https://cs.symfony.com/ | diff --git a/php_tools/php-cs-fixer/install.yml b/php_tools/php-cs-fixer/install.yml new file mode 100644 index 0000000..76fc6a0 --- /dev/null +++ b/php_tools/php-cs-fixer/install.yml @@ -0,0 +1,41 @@ +--- + +check: php-cs-fixer --version 2>&1 | grep -E 'Fixer\s+(version\s*)?[-_.0-9]+\s+' || (php-cs-fixer --version; false) + +all: + type: custom + command: curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" + post: chmod +x /usr/local/bin/php-cs-fixer + +7.3: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + +7.2: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + +7.1: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + +7.0: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + +5.6: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" + +5.5: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" + +5.4: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" + +5.3: + type: custom + pre: PHP_CS_FIXER_URL="https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v2.2.19/php-cs-fixer.phar" diff --git a/php_tools/php-cs-fixer/options.yml b/php_tools/php-cs-fixer/options.yml new file mode 100644 index 0000000..f36d910 --- /dev/null +++ b/php_tools/php-cs-fixer/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: php-cs-fixer + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/phpcbf/README.md b/php_tools/phpcbf/README.md new file mode 100644 index 0000000..e430e3e --- /dev/null +++ b/php_tools/phpcbf/README.md @@ -0,0 +1,8 @@ +# PHP Code Beautifier and Fixer + +PHP Code Beautifier and Fixer fixes violations of a defined coding standard. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/squizlabs/PHP_CodeSniffer | +| Website | https://phpqa.io/projects/phpcbf.html | diff --git a/php_tools/phpcbf/install.yml b/php_tools/phpcbf/install.yml new file mode 100644 index 0000000..e24e5a9 --- /dev/null +++ b/php_tools/phpcbf/install.yml @@ -0,0 +1,17 @@ +--- + +check: phpcbf --version | grep -E 'version [0-9][.0-9]+' || (phpcbf --version; false) + +all: + type: custom + command: curl -sS -k -L --fail -L "${PHPCBF_URL}" -o /usr/local/bin/phpcbf + pre: PHPCBF_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar" + post: chmod +x /usr/local/bin/phpcbf + +5.3: + type: custom + pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" + +5.2: + type: custom + pre: PHPCBF_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcbf.phar" diff --git a/php_tools/phpcbf/options.yml b/php_tools/phpcbf/options.yml new file mode 100644 index 0000000..eb0344b --- /dev/null +++ b/php_tools/phpcbf/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: phpcbf + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/phpcs/README.md b/php_tools/phpcs/README.md new file mode 100644 index 0000000..cc3abbe --- /dev/null +++ b/php_tools/phpcs/README.md @@ -0,0 +1,7 @@ +# PHP_CodeSniffer + +PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/squizlabs/PHP_CodeSniffer | diff --git a/php_tools/phpcs/install.yml b/php_tools/phpcs/install.yml new file mode 100644 index 0000000..9be7966 --- /dev/null +++ b/php_tools/phpcs/install.yml @@ -0,0 +1,17 @@ +--- + +check: phpcs --version | grep -E 'version [0-9][.0-9]+' || (phpcs --version; false) + +all: + type: custom + command: curl -sS -k -L --fail -L "${PHPCS_URL}" -o /usr/local/bin/phpcs + pre: PHPCS_URL="https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar" + post: chmod +x /usr/local/bin/phpcs + +5.3: + type: custom + pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" + +5.2: + type: custom + pre: PHPCS_URL="https://github.com/squizlabs/PHP_CodeSniffer/releases/download/2.9.0/phpcs.phar" diff --git a/php_tools/phpcs/options.yml b/php_tools/phpcs/options.yml new file mode 100644 index 0000000..9e716a3 --- /dev/null +++ b/php_tools/phpcs/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: phpcs + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/phpmd/README.md b/php_tools/phpmd/README.md new file mode 100644 index 0000000..fec4afb --- /dev/null +++ b/php_tools/phpmd/README.md @@ -0,0 +1,8 @@ +# PHPMD + +PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly frontend application for the raw metrics stream measured by PHP Depend. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/phpmd/phpmd | +| Website | https://phpmd.org/ | diff --git a/php_tools/phpmd/install.yml b/php_tools/phpmd/install.yml new file mode 100644 index 0000000..1b9459b --- /dev/null +++ b/php_tools/phpmd/install.yml @@ -0,0 +1,8 @@ +--- + +check: phpmd --version | grep -E '^PHPMD [0-9][.0-9]+' || (phpmd --version; false) + +all: + type: custom + command: curl -sS -k -L --fail https://phpmd.org/static/latest/phpmd.phar -L -o /usr/local/bin/phpmd + post: chmod +x /usr/local/bin/phpmd diff --git a/php_tools/wpcli/options.yml b/php_tools/phpmd/options.yml similarity index 95% rename from php_tools/wpcli/options.yml rename to php_tools/phpmd/options.yml index 9523716..568270d 100644 --- a/php_tools/wpcli/options.yml +++ b/php_tools/phpmd/options.yml @@ -1,7 +1,7 @@ --- # The name of the module -name: wpcli +name: phpmd # Exclude module build/installation for the following PHP versions exclude: [5.2] diff --git a/php_tools/pm2/README.md b/php_tools/pm2/README.md new file mode 100644 index 0000000..5c37626 --- /dev/null +++ b/php_tools/pm2/README.md @@ -0,0 +1,9 @@ +# PM2 + +PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/pm2 | +| GitHub | https://github.com/Unitech/pm2 | +| Website | https://pm2.keymetrics.io/ | diff --git a/php_tools/pm2/install.yml b/php_tools/pm2/install.yml new file mode 100644 index 0000000..8dd4a8c --- /dev/null +++ b/php_tools/pm2/install.yml @@ -0,0 +1,13 @@ +--- + +check: pm2 --no-daemon --version | tail -1 | grep -E '[0-9][.0-9]+' || (pm2 --no-daemon --version; false) + +all: + type: npm + package: pm2 + binary: pm2 + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/pm2/options.yml b/php_tools/pm2/options.yml new file mode 100644 index 0000000..f057c2a --- /dev/null +++ b/php_tools/pm2/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: pm2 + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/pwncat/install.yml b/php_tools/pwncat/install.yml index 309e9d7..6668348 100644 --- a/php_tools/pwncat/install.yml +++ b/php_tools/pwncat/install.yml @@ -10,4 +10,3 @@ all: pre: post: | ln -s pwncat /usr/local/bin/netcat \ - && ln -s pwncat /usr/local/bin/nc \ diff --git a/php_tools/sass/README.md b/php_tools/sass/README.md new file mode 100644 index 0000000..5915786 --- /dev/null +++ b/php_tools/sass/README.md @@ -0,0 +1,10 @@ +# sass + +A pure JavaScript implementation of Sass. Sass makes CSS fun again. + +This package is a distribution of Dart Sass, compiled to pure JavaScript with no native code or external dependencies. It provides a command-line sass executable and a Node.js API. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/sass | +| GitHub | https://github.com/sass/dart-sass | diff --git a/php_tools/sass/install.yml b/php_tools/sass/install.yml new file mode 100644 index 0000000..3a5b40b --- /dev/null +++ b/php_tools/sass/install.yml @@ -0,0 +1,13 @@ +--- + +check: sass --version | grep -E '[0-9][.0-9]+' || (sass --version; false) + +all: + type: npm + package: sass + binary: sass + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/sass/options.yml b/php_tools/sass/options.yml new file mode 100644 index 0000000..af69177 --- /dev/null +++ b/php_tools/sass/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: sass + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/shellcheck/README.md b/php_tools/shellcheck/README.md new file mode 100644 index 0000000..c8b380f --- /dev/null +++ b/php_tools/shellcheck/README.md @@ -0,0 +1,7 @@ +# ShellCheck + +ShellCheck is a GPLv3 tool that gives warnings and suggestions for bash/sh shell scripts. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/koalaman/shellcheck | diff --git a/php_tools/shellcheck/install.yml b/php_tools/shellcheck/install.yml new file mode 100644 index 0000000..c77f4fc --- /dev/null +++ b/php_tools/shellcheck/install.yml @@ -0,0 +1,7 @@ +--- + +check: shellcheck --version | grep -E '[0-9][.0-9]+' || (shellcheck --version; false) + +all: + type: apt + package: shellcheck diff --git a/php_tools/shellcheck/options.yml b/php_tools/shellcheck/options.yml new file mode 100644 index 0000000..0f1e7a6 --- /dev/null +++ b/php_tools/shellcheck/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: shellcheck + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/stylelint/README.md b/php_tools/stylelint/README.md new file mode 100644 index 0000000..98607e3 --- /dev/null +++ b/php_tools/stylelint/README.md @@ -0,0 +1,8 @@ +# Stylelint + +A mighty, modern linter that helps you avoid errors and enforce conventions in your styles. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/stylelint | +| GitHub | https://github.com/stylelint/stylelint | diff --git a/php_tools/stylelint/install.yml b/php_tools/stylelint/install.yml new file mode 100644 index 0000000..e36c7e1 --- /dev/null +++ b/php_tools/stylelint/install.yml @@ -0,0 +1,13 @@ +--- + +check: stylelint --version | grep -E '[0-9][.0-9]+' || (stylelint --version; false) + +all: + type: npm + package: stylelint + binary: stylelint + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/stylelint/options.yml b/php_tools/stylelint/options.yml new file mode 100644 index 0000000..d75d55e --- /dev/null +++ b/php_tools/stylelint/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: stylelint + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/symfony-cli/README.md b/php_tools/symfony-cli/README.md new file mode 100644 index 0000000..3dda3f6 --- /dev/null +++ b/php_tools/symfony-cli/README.md @@ -0,0 +1,7 @@ +# Symfony CLI + +The Symfony binary is a must-have tool when developing Symfony applications on your local machine + +| Platform | Url | +|----------|------------------------------------------------------------------| +| GitHub | https://github.com/symfony-cli/symfony-cli | diff --git a/php_tools/symfony-cli/install.yml b/php_tools/symfony-cli/install.yml new file mode 100644 index 0000000..e18ef2e --- /dev/null +++ b/php_tools/symfony-cli/install.yml @@ -0,0 +1,9 @@ +--- + +check: symfony --no-ansi -V | grep -E 'version [0-9][.0-9]+' || (symfony --no-ansi -V; false) + +all: + type: custom + command: curl -sS https://get.symfony.com/cli/installer | bash -s -- --install-dir /usr/local/bin + build_dep: [] + run_dep: [] diff --git a/php_tools/symfony-cli/options.yml b/php_tools/symfony-cli/options.yml new file mode 100644 index 0000000..ac940cc --- /dev/null +++ b/php_tools/symfony-cli/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: symfony-cli + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/vue-cli/README.md b/php_tools/vue-cli/README.md new file mode 100644 index 0000000..803e9a6 --- /dev/null +++ b/php_tools/vue-cli/README.md @@ -0,0 +1,10 @@ +# Vue CLI + +Vue CLI is the Standard Tooling for Vue.js Development. + +**Note:** Vue CLI is now in maintenance mode. For new projects, please use create-vue to scaffold Vite-based projects. create-vue supports both Vue 2 and Vue 3. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/@vue/cli | +| GitHub | https://github.com/vuejs/vue-cli | diff --git a/php_tools/vue-cli/install.yml b/php_tools/vue-cli/install.yml new file mode 100644 index 0000000..57c73f5 --- /dev/null +++ b/php_tools/vue-cli/install.yml @@ -0,0 +1,13 @@ +--- + +check: vue --version | grep -E '[0-9][.0-9]+' || (vue --version; false) + +all: + type: npm + package: "@vue/cli" + binary: vue + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/vue-cli/options.yml b/php_tools/vue-cli/options.yml new file mode 100644 index 0000000..e266ce4 --- /dev/null +++ b/php_tools/vue-cli/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: vue-cli + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/webpack-cli/README.md b/php_tools/webpack-cli/README.md new file mode 100644 index 0000000..fd4b1ec --- /dev/null +++ b/php_tools/webpack-cli/README.md @@ -0,0 +1,8 @@ +# webpack CLI + +webpack CLI provides a flexible set of commands for developers to increase speed when setting up a custom webpack project. As of webpack v4, webpack is not expecting a configuration file, but often developers want to create a more custom webpack configuration based on their use-cases and needs. webpack CLI addresses these needs by providing a set of tools to improve the setup of custom webpack configuration. + +| Platform | Url | +|----------|------------------------------------------------------------------| +| NPM | https://www.npmjs.com/package/webpack-cli | +| GitHub | https://github.com/webpack/webpack-cli | diff --git a/php_tools/webpack-cli/install.yml b/php_tools/webpack-cli/install.yml new file mode 100644 index 0000000..69b579f --- /dev/null +++ b/php_tools/webpack-cli/install.yml @@ -0,0 +1,13 @@ +--- + +check: webpack-cli --version | grep -E '[0-9][.0-9]+' || (webpack-cli --version; false) + +all: + type: npm + package: webpack-cli + binary: webpack-cli + version: + build_dep: [] + run_dep: [] + pre: + post: diff --git a/php_tools/webpack-cli/options.yml b/php_tools/webpack-cli/options.yml new file mode 100644 index 0000000..35f15da --- /dev/null +++ b/php_tools/webpack-cli/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: webpack-cli + +# Exclude module build/installation for the following PHP versions +exclude: [] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: [] diff --git a/php_tools/wpcli/README.md b/php_tools/wp-cli/README.md similarity index 100% rename from php_tools/wpcli/README.md rename to php_tools/wp-cli/README.md diff --git a/php_tools/wpcli/install.yml b/php_tools/wp-cli/install.yml similarity index 100% rename from php_tools/wpcli/install.yml rename to php_tools/wp-cli/install.yml diff --git a/php_tools/wp-cli/options.yml b/php_tools/wp-cli/options.yml new file mode 100644 index 0000000..cc6cf9b --- /dev/null +++ b/php_tools/wp-cli/options.yml @@ -0,0 +1,11 @@ +--- + +# The name of the module +name: wp-cli + +# Exclude module build/installation for the following PHP versions +exclude: [5.2] + +# In order for this tool to build/install correctly, +# the following tools must have been installed first. +depends: []