diff --git a/.gitlab/ci/build.yml b/.gitlab/ci/build.yml index 1700c484d9e860e1aa7a1d038a8022694e533d60..743faad3978343744c4f0652562c825dbb256a3a 100644 --- a/.gitlab/ci/build.yml +++ b/.gitlab/ci/build.yml @@ -26,6 +26,20 @@ Make PHP Unit Test: except: - schedules +Make PHP Browser Test: + stage: build + tags: + - linux + - dockerd + script: + - make php-browser-test + only: + changes: + - php-browser-test/* + - php-browser-test/**/* + except: + - schedules + Make Android Build: stage: build tags: diff --git a/.gitlab/ci/publish.yml b/.gitlab/ci/publish.yml index c03e3b0cfbe71641ec02960355116e42977667d6..e1d33fa0614518721e1b741ae412cc232bfb7799 100644 --- a/.gitlab/ci/publish.yml +++ b/.gitlab/ci/publish.yml @@ -40,6 +40,20 @@ Publish PHP Unit Test: except: - schedules +Publish PHP Browser Test: + <<: *push_to_registry + variables: + IMG_NAME: "php-browser-test" + needs: ["Make PHP Browser Test"] + only: + refs: + - master + changes: + - php-browser-test/* + - php-browser-test/**/* + except: + - schedules + Publish Android Build: <<: *push_to_registry variables: diff --git a/Makefile b/Makefile index 7083d5ab03b16dbf47eaf6659c7c1a016d57aaf9..c09569312630d9d0f6bfa137175839923f03058e 100644 --- a/Makefile +++ b/Makefile @@ -20,12 +20,13 @@ BUILD_ARGS := --build-arg VCS_REF=$(GIT_COMMIT) .PHONY: all clean test $(DOCKERFILES) static-code-analysis mobile delete_dangling_images security publish utility dotnet -all: php-lint php-unit-test mobile static-code-analysis utility detect-secrets dependency-check xml-lint +all: php-lint php-unit-test php-browser-test mobile static-code-analysis utility detect-secrets dependency-check xml-lint # Image Groups #################### -php-lint: php-lint_5.6 php-lint_7.0 php-lint_7.1 php-lint_7.2 php-lint_7.3 php-lint_7.4 php-lint_8.0 php-lint_8.1 php-lint_8.2 php-lint_latest -php-unit-test: php-unit-test_5.6 php-unit-test_7.0 php-unit-test_7.1 php-unit-test_7.2 php-unit-test_7.3 php-unit-test_7.4 php-unit-test_8.0 php-unit-test_8.1 php-unit-test_8.2 php-unit-test_latest +php-lint: php-lint_7.1 php-lint_7.2 php-lint_7.3 php-lint_7.4 php-lint_8.0 php-lint_8.1 php-lint_8.2 php-lint_latest +php-unit-test: php-unit-test_7.1 php-unit-test_7.2 php-unit-test_7.3 php-unit-test_7.4 php-unit-test_8.0 php-unit-test_8.1 php-unit-test_8.2 php-unit-test_latest +php-browser-test: php-browser-test_8.2 php-browser-test_latest mobile: android-build-server static-code-analysis: static-code-analysis_latest static-code-analysys_php static-code-analysys_python static-code-analysys_android utility: alpine-ssh-client merge-request-check @@ -33,12 +34,6 @@ dotnet: dotnet_3.1 dotnet_6.0 # PHP Lint Images #################### -php-lint_5.6: php-lint/5.6/Dockerfile - docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-lint:5.6 -f php-lint/5.6/Dockerfile php-lint - -php-lint_7.0: php-lint/7.0/Dockerfile - docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-lint:7.0 -f php-lint/7.0/Dockerfile php-lint - php-lint_7.1: php-lint/7.1/Dockerfile docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-lint:7.1 -f php-lint/7.1/Dockerfile php-lint @@ -65,12 +60,6 @@ php-lint_latest: php-lint_8.2 # PHP Unit Test Images #################### -php-unit-test_5.6: php-unit-test/5.6/Dockerfile - docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-unit-test:5.6 -f php-unit-test/5.6/Dockerfile php-unit-test - -php-unit-test_7.0: php-unit-test/7.0/Dockerfile - docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-unit-test:7.0 -f php-unit-test/7.0/Dockerfile php-unit-test - php-unit-test_7.1: php-unit-test/7.1/Dockerfile docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-unit-test:7.1 -f php-unit-test/7.1/Dockerfile php-unit-test @@ -95,6 +84,14 @@ php-unit-test_8.2: php-unit-test/8.2/Dockerfile php-unit-test_latest: php-unit-test_8.2 docker tag ${REPO_ORG}/php-unit-test:8.2 ${REPO_ORG}/php-unit-test:latest +# PHP Unit Test Images +#################### +php-browser-test_8.2: php-browser-test/8.2/Dockerfile + docker build $(BUILD_ARGS) -t ${REPO_ORG}/php-browser-test:8.2 -f php-browser-test/8.2/Dockerfile php-browser-test/8.2 + +php-browser-test_latest: php-browser-test_8.2 + docker tag ${REPO_ORG}/php-browser-test:8.2 ${REPO_ORG}/php-browser-test:latest + # Mobile Applications #################### android-build-server: android-build-server/Dockerfile diff --git a/php-browser-test/8.2/Dockerfile b/php-browser-test/8.2/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..14ebb95c63b624592c7b645305cad21a4c153414 --- /dev/null +++ b/php-browser-test/8.2/Dockerfile @@ -0,0 +1,22 @@ +FROM its-registry.unl.edu/unl-its/docker-ci/php-unit-test:8.2 + +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION +LABEL org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name="PHP 8.2 Browser Tester" \ + org.label-schema.description="Perform chromedriver browser tests in PHP (Ex. Laravel Dusk)" \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vendor="University of Nebraska - Lincoln" \ + org.label-schema.version=$VERSION \ + org.label-schema.schema-version="1.0" \ + maintainer="Alan Nelson <alan.nelson@nebraska.edu>" + +RUN apk add --no-cache chromium-chromedriver + +COPY ./browser-test-entrypoint.sh /usr/local/bin/browser-test-entrypoint +RUN chown root:root /usr/local/bin/browser-test-entrypoint \ + && chmod 755 /usr/local/bin/browser-test-entrypoint + +ENTRYPOINT ["/usr/local/bin/browser-test-entrypoint"] +CMD ["sh"] diff --git a/php-browser-test/8.2/browser-test-entrypoint.sh b/php-browser-test/8.2/browser-test-entrypoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..bbefdbb5b36266f8fbe2493166373b5c851f9edc --- /dev/null +++ b/php-browser-test/8.2/browser-test-entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +chromedriver --allowed-ips="127.0.0.1" > /dev/null & + +exec "$@" \ No newline at end of file diff --git a/php-lint/5.6/Dockerfile b/php-lint/5.6/Dockerfile deleted file mode 100644 index 26c505d6a933b9e0b813fdf7cd8499670c6e6a70..0000000000000000000000000000000000000000 --- a/php-lint/5.6/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM php:5.6-alpine - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="PHP 5.6 linter" \ - org.label-schema.description="" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vendor="University of Nebraska - Lincoln" \ - org.label-schema.version=$VERSION \ - org.label-schema.schema-version="1.0" \ - maintainer="Alan Nelson <alan.nelson@nebraska.edu>" - -RUN apk add --no-cache bash - -COPY php-lint docker-entrypoint /usr/local/bin/ -RUN chmod 755 /usr/local/bin/docker-entrypoint /usr/local/bin/php-lint - -ENTRYPOINT ["docker-entrypoint"] -CMD ["--help"] diff --git a/php-lint/7.0/Dockerfile b/php-lint/7.0/Dockerfile deleted file mode 100644 index 4803f6136ab4edada23fe374a6e6b3372da34201..0000000000000000000000000000000000000000 --- a/php-lint/7.0/Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM php:7.0-alpine - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="PHP 7.0 linter" \ - org.label-schema.description="" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vendor="University of Nebraska - Lincoln" \ - org.label-schema.version=$VERSION \ - org.label-schema.schema-version="1.0" \ - maintainer="Alan Nelson <alan.nelson@nebraska.edu>" - -RUN apk add --no-cache bash - -COPY php-lint docker-entrypoint /usr/local/bin/ -RUN chmod 755 /usr/local/bin/docker-entrypoint /usr/local/bin/php-lint - -ENTRYPOINT ["docker-entrypoint"] -CMD ["--help"] diff --git a/php-unit-test/5.6/Dockerfile b/php-unit-test/5.6/Dockerfile deleted file mode 100644 index 2efbdb1d9d7987b5ce25c4590638b08022a425d9..0000000000000000000000000000000000000000 --- a/php-unit-test/5.6/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM php:5.6-alpine - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="PHP 5.6 Unit Tester" \ - org.label-schema.description="" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vendor="University of Nebraska - Lincoln" \ - org.label-schema.version=$VERSION \ - org.label-schema.schema-version="1.0" \ - maintainer="Alan Nelson <alan.nelson@nebraska.edu>" - -RUN apk add --no-cache bash nodejs nodejs-npm $PHPIZE_DEPS \ - && pecl channel-update pecl.php.net \ - && pecl install xdebug-2.5.0 \ - && docker-php-ext-enable xdebug \ - && apk del --no-cache $PHPIZE_DEPS -RUN curl -o /usr/local/bin/composer https://getcomposer.org/composer.phar \ - && chmod 755 /usr/local/bin/composer - -CMD ["bash"] diff --git a/php-unit-test/7.0/Dockerfile b/php-unit-test/7.0/Dockerfile deleted file mode 100644 index d39c4b073db57fc36786ef1d6bd7bf648cf43547..0000000000000000000000000000000000000000 --- a/php-unit-test/7.0/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -FROM php:7.0-alpine - -ARG BUILD_DATE -ARG VCS_REF -ARG VERSION -LABEL org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.name="PHP 7.0 Unit Tester" \ - org.label-schema.description="" \ - org.label-schema.vcs-ref=$VCS_REF \ - org.label-schema.vendor="University of Nebraska - Lincoln" \ - org.label-schema.version=$VERSION \ - org.label-schema.schema-version="1.0" \ - maintainer="Alan Nelson <alan.nelson@nebraska.edu>" - -RUN apk add --no-cache bash nodejs nodejs-npm $PHPIZE_DEPS \ - && pecl channel-update pecl.php.net \ - && pecl install xdebug-2.9.0 \ - && docker-php-ext-enable xdebug \ - && apk del --no-cache $PHPIZE_DEPS -RUN curl -o /usr/local/bin/composer https://getcomposer.org/composer.phar \ - && chmod 755 /usr/local/bin/composer - -CMD ["bash"] diff --git a/php-unit-test/7.1/Dockerfile b/php-unit-test/7.1/Dockerfile index 28d00ae645918a0c1c7632a90a8552b68e503ff1..29c234151579402862c04514cf5dde0f30568b70 100644 --- a/php-unit-test/7.1/Dockerfile +++ b/php-unit-test/7.1/Dockerfile @@ -14,7 +14,7 @@ LABEL org.label-schema.build-date=$BUILD_DATE \ RUN apk add --no-cache bash nodejs nodejs-npm libmcrypt-dev $PHPIZE_DEPS \ && pecl channel-update pecl.php.net \ - && pecl install xdebug-2.9.8 redis \ + && pecl install xdebug-2.9.8 redis-5.3.7 \ && docker-php-ext-enable xdebug redis \ && docker-php-ext-install mcrypt \ && apk del --no-cache $PHPIZE_DEPS diff --git a/php-unit-test/7.3/Dockerfile b/php-unit-test/7.3/Dockerfile index 1e7a5e533fdbf1931025bb35673ba5c6fa9ade5f..de6e937caf88271d784a6c379aa74798a0112675 100644 --- a/php-unit-test/7.3/Dockerfile +++ b/php-unit-test/7.3/Dockerfile @@ -13,7 +13,7 @@ LABEL org.label-schema.build-date=$BUILD_DATE \ maintainer="Alan Nelson <alan.nelson@nebraska.edu>" RUN export BUILD_DEPS="bzip2-dev icu-dev libpng-dev libzip-dev openldap-dev" \ - && apk add --no-cache bash nodejs nodejs-npm $PHPIZE_DEPS $BUILD_DEPS \ + && apk add --no-cache bash nodejs npm $PHPIZE_DEPS $BUILD_DEPS \ && pecl channel-update pecl.php.net \ && pecl install xdebug-3.1.6 redis \ && docker-php-ext-install bz2 gd intl ldap mysqli pdo_mysql zip \ diff --git a/php-unit-test/7.4/Dockerfile b/php-unit-test/7.4/Dockerfile index 80c63c587bc775c765ade4e12248f28ac400b30f..941cee307202569d6ad38001aa15767deebaed2a 100644 --- a/php-unit-test/7.4/Dockerfile +++ b/php-unit-test/7.4/Dockerfile @@ -13,7 +13,7 @@ LABEL org.label-schema.build-date=$BUILD_DATE \ maintainer="Alan Nelson <alan.nelson@nebraska.edu>" RUN export BUILD_DEPS="bzip2-dev icu-dev libpng-dev libzip-dev openldap-dev" \ - && apk add --no-cache bash nodejs nodejs-npm $PHPIZE_DEPS $BUILD_DEPS \ + && apk add --no-cache bash nodejs npm $PHPIZE_DEPS $BUILD_DEPS \ && pecl channel-update pecl.php.net \ && pecl install xdebug-3.1.6 redis \ && docker-php-ext-install bz2 gd intl ldap mysqli pdo_mysql zip \ diff --git a/php-unit-test/8.2/Dockerfile b/php-unit-test/8.2/Dockerfile index a4dd31fb745aa92249b609f107cf9c9f4afad86e..0f914919e23d4ae276a4d6406763c9a21fc9f95b 100644 --- a/php-unit-test/8.2/Dockerfile +++ b/php-unit-test/8.2/Dockerfile @@ -5,7 +5,7 @@ ARG VCS_REF ARG VERSION LABEL org.label-schema.build-date=$BUILD_DATE \ org.label-schema.name="PHP 8.2 Unit Tester" \ - org.label-schema.description="" \ + org.label-schema.description="Perform unit tests in PHP (Ex. PHPUnit)" \ org.label-schema.vcs-ref=$VCS_REF \ org.label-schema.vendor="University of Nebraska - Lincoln" \ org.label-schema.version=$VERSION \