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:
digmhsendmailmysqldump-securenetcatping