mirror of
https://github.com/cytopia/devilbox.git
synced 2025-04-10 04:20:00 +00:00
Test against wordpress
This commit is contained in:
parent
2f129611cc
commit
41493bc514
7
.github/workflows/ci-smoke-php-httpd.yml
vendored
7
.github/workflows/ci-smoke-php-httpd.yml
vendored
@ -208,6 +208,13 @@ jobs:
|
||||
make test-smoke-framework-drupal
|
||||
if: success() || failure()
|
||||
|
||||
- name: "Test Framework: Wordpress"
|
||||
shell: bash
|
||||
run: |
|
||||
cd .tests/
|
||||
make test-smoke-framework-wordpress
|
||||
if: success() || failure()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Finish
|
||||
# ------------------------------------------------------------
|
||||
|
7
.github/workflows/ci-smoke-versions.yml
vendored
7
.github/workflows/ci-smoke-versions.yml
vendored
@ -244,6 +244,13 @@ jobs:
|
||||
make test-smoke-framework-drupal
|
||||
if: success() || failure()
|
||||
|
||||
- name: "Test Framework: Wordpress"
|
||||
shell: bash
|
||||
run: |
|
||||
cd .tests/
|
||||
make test-smoke-framework-wordpress
|
||||
if: success() || failure()
|
||||
|
||||
# ------------------------------------------------------------
|
||||
# Finish
|
||||
# ------------------------------------------------------------
|
||||
|
@ -158,6 +158,9 @@ test-smoke-framework-cakephp:
|
||||
test-smoke-framework-drupal:
|
||||
$(PWD)/tests/framework-drupal.sh
|
||||
|
||||
test-smoke-framework-wordpress:
|
||||
$(PWD)/tests/framework-wordpress.sh
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Helper Targets
|
||||
|
@ -14,6 +14,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=("5.2" "5.3" "7.4" "8.0")
|
||||
DISABLED_MYSQL_VERSIONS=("mysql-8.0" "percona-8.0")
|
||||
|
||||
|
||||
echo
|
||||
@ -33,6 +34,12 @@ if [[ ${DISABLED_VERSIONS[*]} =~ ${PHP_VERSION} ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
MYSQL_VERSION="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "MYSQL_SERVER" )"
|
||||
if [[ ${DISABLED_MYSQL_VERSIONS[*]} =~ ${MYSQL_VERSION} ]]; then
|
||||
printf "[SKIP] Skipping all checks for MySQL %s\\n" "${MYSQL_VERSION}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
DRUSH=
|
||||
if run "docker-compose exec --user devilbox -T php bash -c 'command -v drush'" "1" "${DVLBOX_PATH}"; then
|
||||
DRUSH=drush
|
||||
|
107
.tests/tests/framework-wordpress.sh
Executable file
107
.tests/tests/framework-wordpress.sh
Executable file
@ -0,0 +1,107 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# NOTE: Parsing curl to tac to circumnvent "failed writing body"
|
||||
# https://stackoverflow.com/questions/16703647/why-curl-return-and-error-23-failed-writing-body
|
||||
|
||||
set -e
|
||||
set -u
|
||||
set -o pipefail
|
||||
|
||||
SCRIPT_PATH="$( cd "$(dirname "$0")" && pwd -P )"
|
||||
DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
# shellcheck disable=SC1090
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=()
|
||||
|
||||
|
||||
echo
|
||||
echo "# --------------------------------------------------------------------------------------------------"
|
||||
echo "# [Framework] Wordpress"
|
||||
echo "# --------------------------------------------------------------------------------------------------"
|
||||
echo
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Pre-check
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"
|
||||
if [[ ${DISABLED_VERSIONS[*]} =~ ${PHP_VERSION} ]]; then
|
||||
printf "[SKIP] Skipping all checks for PHP %s\\n" "${PHP_VERSION}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# ENTRYPOINT
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
###
|
||||
### Get required env values
|
||||
###
|
||||
MYSQL_ROOT_PASSWORD="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "MYSQL_ROOT_PASSWORD" )"
|
||||
HOST_PORT_HTTPD="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "HOST_PORT_HTTPD" )"
|
||||
TLD_SUFFIX="$( "${SCRIPT_PATH}/../scripts/env-getvar.sh" "TLD_SUFFIX" )"
|
||||
|
||||
|
||||
###
|
||||
### Custom variables
|
||||
###
|
||||
VHOST="my-wordpress"
|
||||
DB_NAME="my_wp"
|
||||
PROJECT_NAME="this-is-my-grepable-project-name"
|
||||
|
||||
|
||||
# Setup Wordpress project
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'rm -rf /shared/httpd/${VHOST}'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'mkdir -p /shared/httpd/${VHOST}'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'git clone https://github.com/WordPress/WordPress /shared/httpd/${VHOST}/wordpress'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php bash -c 'ln -sf wordpress /shared/httpd/${VHOST}/htdocs'" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php mysql -u root -h mysql --password=\"${MYSQL_ROOT_PASSWORD}\" -e \"DROP DATABASE IF EXISTS ${DB_NAME}; CREATE DATABASE ${DB_NAME};\"" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
|
||||
# Configure Wordpress database settings
|
||||
run "docker-compose exec --user devilbox -T php bash -c \"perl -pe 's/\\r$//' < /shared/httpd/${VHOST}/wordpress/wp-config-sample.php > /shared/httpd/${VHOST}/wordpress/wp-config.php\"" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/define(\\s*'DB_NAME.*/define('DB_NAME', '${DB_NAME}');/g\" /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/define(\\s*'DB_USER.*/define('DB_USER', 'root');/g\" /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/define(\\s*'DB_PASSWORD.*/define('DB_PASSWORD', '${MYSQL_ROOT_PASSWORD}');/g\" /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/define(\\s*'DB_HOST.*/define('DB_HOST', 'mysql');/g\" /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php sed -i\"\" \"s/define(\\s*'WP_DEBUG.*/define('WP_DEBUG', true);/g\" /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
run "docker-compose exec --user devilbox -T php php -l /shared/httpd/${VHOST}/wordpress/wp-config.php" "${RETRIES}" "${DVLBOX_PATH}"
|
||||
|
||||
# Install Wordpress
|
||||
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail -L -XPOST -c cookie.txt -b cookie.txt \
|
||||
'http://${VHOST}.${TLD_SUFFIX}:${HOST_PORT_HTTPD}/wp-admin/install.php?step=1'\
|
||||
--data 'language=1' >/dev/null" "${RETRIES}" "${DVLBOX_PATH}"; then
|
||||
run "docker-compose exec --user devilbox -T php curl -sS --fail -L -XPOST -c cookie.txt -b cookie.txt \
|
||||
'http://${VHOST}.${TLD_SUFFIX}:${HOST_PORT_HTTPD}/wp-admin/install.php?step=1'\
|
||||
--data 'language=1' >/dev/null" "1" "${DVLBOX_PATH}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! run "docker-compose exec --user devilbox -T php curl -sS --fail -L -XPOST -c cookie.txt -b cookie.txt \
|
||||
'http://${VHOST}.${TLD_SUFFIX}:${HOST_PORT_HTTPD}/wp-admin/install.php?step=2' \
|
||||
--data 'weblog_title=${PROJECT_NAME}' \
|
||||
--data 'user_name=admin' \
|
||||
--data 'admin_password=password' \
|
||||
--data 'admin_password2=password' \
|
||||
--data 'pw_weak=on' \
|
||||
--data 'admin_email=test%40test.com' \
|
||||
--data 'blog_public=0' \
|
||||
--data 'Submit=Install+WordPress&language=' >/dev/null" "${RETRIES}" "${DVLBOX_PATH}"; then
|
||||
run "docker-compose exec --user devilbox -T php curl -sS --fail -L -XPOST -c cookie.txt -b cookie.txt \
|
||||
'http://${VHOST}.${TLD_SUFFIX}:${HOST_PORT_HTTPD}/wp-admin/install.php?step=2' \
|
||||
--data 'weblog_title=${PROJECT_NAME}' \
|
||||
--data 'user_name=admin' \
|
||||
--data 'admin_password=password' \
|
||||
--data 'admin_password2=password' \
|
||||
--data 'pw_weak=on' \
|
||||
--data 'admin_email=test%40test.com' \
|
||||
--data 'blog_public=0' \
|
||||
--data 'Submit=Install+WordPress&language='" "1" "${DVLBOX_PATH}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test Wordpress
|
||||
run "docker-compose exec --user devilbox -T php curl -sS --fail -L 'http://${VHOST}.${TLD_SUFFIX}:${HOST_PORT_HTTPD}/' | grep '${PROJECT_NAME}' >/dev/null" "${RETRIES}" "${DVLBOX_PATH}"
|
@ -321,4 +321,5 @@ script:
|
||||
make test-smoke-autostart;
|
||||
make test-smoke-framework-cakephp;
|
||||
make test-smoke-framework-drupal;
|
||||
make test-smoke-framework-wordpress;
|
||||
fi
|
||||
|
Loading…
x
Reference in New Issue
Block a user