From 161e4fced4518f06cb003e49ace5fc89230dd1bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 19:22:25 +0200 Subject: [PATCH 01/27] test --- .forgejo/workflows/phpunit.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 6df0ddf..d41724b 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -12,7 +12,6 @@ jobs: MYSQL_ROOT_PASSWORD: root ports: - 3306:3306 - options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=10s --health-retries=10 strategy: matrix: php-versions: ['8.1', '8.2', '8.3'] -- 2.39.5 From b0f01cfaf50b64eab6d27a392761510e0cf3502c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:18:57 +0200 Subject: [PATCH 02/27] fix test --- phpunit.xml.dist | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 phpunit.xml.dist diff --git a/phpunit.xml.dist b/phpunit.xml.dist new file mode 100644 index 0000000..50421ec --- /dev/null +++ b/phpunit.xml.dist @@ -0,0 +1,16 @@ + + + + + ./tests/ + ./tests/test-sample.php + + + -- 2.39.5 From 626c4d5ffc1dd44a95f3b3aff2fe15fc6f1e35b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:20:06 +0200 Subject: [PATCH 03/27] test runner --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index d41724b..fb53a2c 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest services: mysql: - image: mariadb:11.5 + image: 'mariadb:10.7' env: MYSQL_ROOT_PASSWORD: root ports: -- 2.39.5 From 92321bb9f0990b41680db622f7e7b3b2e6d960f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:28:22 +0200 Subject: [PATCH 04/27] fix phpunit test --- .forgejo/workflows/phpunit.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index fb53a2c..2b4911a 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -12,11 +12,11 @@ jobs: MYSQL_ROOT_PASSWORD: root ports: - 3306:3306 - strategy: - matrix: - php-versions: ['8.1', '8.2', '8.3'] - include: - - wp-version: latest + strategy: + matrix: + php-versions: ['8.1', '8.2', '8.3'] + include: + - wp-version: latest steps: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 -- 2.39.5 From 20a05678ba1533b38d8e4fbacc8d233acc7762f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:29:31 +0200 Subject: [PATCH 05/27] test phpunit workflow --- .forgejo/workflows/phpunit.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 2b4911a..96cae36 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -21,13 +21,13 @@ jobs: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - # - name: Setup PHP - # uses: shivammathur/setup-php@v2 - # with: - # php-version: ${{ matrix.php-versions }} - # coverage: none - # tools: composer, phpunit-polyfills - # extensions: mysql + - name: Setup PHP + uses: https://github.com/shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + coverage: none + tools: composer, phpunit-polyfills + extensions: mysql # - name: Install Composer dependencies for PHP # uses: "ramsey/composer-install@v1" -- 2.39.5 From 3d689713ad6603c8b4205ea5d75be8b04623a3b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:34:47 +0200 Subject: [PATCH 06/27] add more test files --- .forgejo/workflows/tests.yml | 114 ++++++++++++++++++++++ .phpcs.xml.dist | 47 +++++++++ bin/install-wp-tests.sh | 181 +++++++++++++++++++++++++++++++++++ docker-compose-test.yml | 26 +++++ tests/bootstrap.php | 38 ++++++++ tests/test-sample.php | 20 ++++ 6 files changed, 426 insertions(+) create mode 100755 .forgejo/workflows/tests.yml create mode 100644 .phpcs.xml.dist create mode 100755 bin/install-wp-tests.sh create mode 100644 docker-compose-test.yml create mode 100755 tests/bootstrap.php create mode 100755 tests/test-sample.php diff --git a/.forgejo/workflows/tests.yml b/.forgejo/workflows/tests.yml new file mode 100755 index 0000000..899bae0 --- /dev/null +++ b/.forgejo/workflows/tests.yml @@ -0,0 +1,114 @@ +workflows: + version: 2 + main: + jobs: + - php56-build + - php70-build + - php71-build + - php72-build + - php73-build + - php74-build + +version: 2 + +job-references: + mysql_image: &mysql_image + circleci/mysql:5.6 + + setup_environment: &setup_environment + name: "Setup Environment Variables" + command: | + echo "export PATH=$HOME/.composer/vendor/bin:$PATH" >> $BASH_ENV + source /home/circleci/.bashrc + + install_dependencies: &install_dependencies + name: "Install Dependencies" + command: | + sudo apt-get update && sudo apt-get install subversion + sudo -E docker-php-ext-install mysqli + sudo sh -c "printf '\ndeb http://ftp.us.debian.org/debian sid main\n' >> /etc/apt/sources.list" + sudo apt-get update && sudo apt-get install mysql-client-5.7 + + php_job: &php_job + environment: + - WP_TESTS_DIR: "/tmp/wordpress-tests-lib" + - WP_CORE_DIR: "/tmp/wordpress/" + steps: + - checkout + - run: *setup_environment + - run: *install_dependencies + - run: + name: "Run Tests" + command: | + composer global require "phpunit/phpunit=5.7.*" + composer global require wp-coding-standards/wpcs + phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs + phpcs + rm -rf $WP_TESTS_DIR $WP_CORE_DIR + bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest + phpunit + WP_MULTISITE=1 phpunit + +jobs: + php56-build: + <<: *php_job + docker: + - image: circleci/php:5.6 + - image: *mysql_image + steps: + - checkout + - run: *setup_environment + - run: *install_dependencies + - run: + name: "Run Tests" + command: | + composer global require "phpunit/phpunit=5.7.*" + composer global require wp-coding-standards/wpcs + phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs + phpcs + SKIP_DB_CREATE=false + rm -rf $WP_TESTS_DIR $WP_CORE_DIR + bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 5.5 $SKIP_DB_CREATE + phpunit + WP_MULTISITE=1 phpunit + SKIP_DB_CREATE=true + rm -rf $WP_TESTS_DIR $WP_CORE_DIR + bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest $SKIP_DB_CREATE + phpunit + WP_MULTISITE=1 phpunit + SKIP_DB_CREATE=true + rm -rf $WP_TESTS_DIR $WP_CORE_DIR + bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 trunk $SKIP_DB_CREATE + phpunit + WP_MULTISITE=1 phpunit + SKIP_DB_CREATE=true + + php70-build: + <<: *php_job + docker: + - image: circleci/php:7.0 + - image: *mysql_image + + php71-build: + <<: *php_job + docker: + - image: circleci/php:7.1 + - image: *mysql_image + + php72-build: + <<: *php_job + docker: + - image: circleci/php:7.2 + - image: *mysql_image + + php73-build: + <<: *php_job + docker: + - image: circleci/php:7.3 + - image: *mysql_image + + php74-build: + <<: *php_job + docker: + - image: circleci/php:7.4 + - image: *mysql_image diff --git a/.phpcs.xml.dist b/.phpcs.xml.dist new file mode 100644 index 0000000..df58068 --- /dev/null +++ b/.phpcs.xml.dist @@ -0,0 +1,47 @@ + + + Generally-applicable sniffs for WordPress plugins. + + + . + /vendor/ + /node_modules/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/install-wp-tests.sh b/bin/install-wp-tests.sh new file mode 100755 index 0000000..c6f53dc --- /dev/null +++ b/bin/install-wp-tests.sh @@ -0,0 +1,181 @@ +#!/usr/bin/env bash + +if [ $# -lt 3 ]; then + echo "usage: $0 [db-host] [wp-version] [skip-database-creation]" + exit 1 +fi + +DB_NAME=$1 +DB_USER=$2 +DB_PASS=$3 +DB_HOST=${4-localhost} +WP_VERSION=${5-latest} +SKIP_DB_CREATE=${6-false} + +TMPDIR=${TMPDIR-/tmp} +TMPDIR=$(echo $TMPDIR | sed -e "s/\/$//") +WP_TESTS_DIR=${WP_TESTS_DIR-$TMPDIR/wordpress-tests-lib} +WP_CORE_DIR=${WP_CORE_DIR-$TMPDIR/wordpress} + +download() { + if [ `which curl` ]; then + curl -s "$1" > "$2"; + elif [ `which wget` ]; then + wget -nv -O "$2" "$1" + fi +} + +if [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+\-(beta|RC)[0-9]+$ ]]; then + WP_BRANCH=${WP_VERSION%\-*} + WP_TESTS_TAG="branches/$WP_BRANCH" + +elif [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+$ ]]; then + WP_TESTS_TAG="branches/$WP_VERSION" +elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then + if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then + # version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x + WP_TESTS_TAG="tags/${WP_VERSION%??}" + else + WP_TESTS_TAG="tags/$WP_VERSION" + fi +elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then + WP_TESTS_TAG="trunk" +else + # http serves a single offer, whereas https serves multiple. we only want one + download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json + grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json + LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//') + if [[ -z "$LATEST_VERSION" ]]; then + echo "Latest WordPress version could not be found" + exit 1 + fi + WP_TESTS_TAG="tags/$LATEST_VERSION" +fi +set -ex + +install_wp() { + + if [ -d $WP_CORE_DIR ]; then + return; + fi + + mkdir -p $WP_CORE_DIR + + if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then + mkdir -p $TMPDIR/wordpress-trunk + rm -rf $TMPDIR/wordpress-trunk/* + svn export --quiet https://core.svn.wordpress.org/trunk $TMPDIR/wordpress-trunk/wordpress + mv $TMPDIR/wordpress-trunk/wordpress/* $WP_CORE_DIR + else + if [ $WP_VERSION == 'latest' ]; then + local ARCHIVE_NAME='latest' + elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+ ]]; then + # https serves multiple offers, whereas http serves single. + download https://api.wordpress.org/core/version-check/1.7/ $TMPDIR/wp-latest.json + if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then + # version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x + LATEST_VERSION=${WP_VERSION%??} + else + # otherwise, scan the releases and get the most up to date minor version of the major release + local VERSION_ESCAPED=`echo $WP_VERSION | sed 's/\./\\\\./g'` + LATEST_VERSION=$(grep -o '"version":"'$VERSION_ESCAPED'[^"]*' $TMPDIR/wp-latest.json | sed 's/"version":"//' | head -1) + fi + if [[ -z "$LATEST_VERSION" ]]; then + local ARCHIVE_NAME="wordpress-$WP_VERSION" + else + local ARCHIVE_NAME="wordpress-$LATEST_VERSION" + fi + else + local ARCHIVE_NAME="wordpress-$WP_VERSION" + fi + download https://wordpress.org/${ARCHIVE_NAME}.tar.gz $TMPDIR/wordpress.tar.gz + tar --strip-components=1 -zxmf $TMPDIR/wordpress.tar.gz -C $WP_CORE_DIR + fi + + download https://raw.githubusercontent.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php +} + +install_test_suite() { + # portable in-place argument for both GNU sed and Mac OSX sed + if [[ $(uname -s) == 'Darwin' ]]; then + local ioption='-i.bak' + else + local ioption='-i' + fi + + # set up testing suite if it doesn't yet exist + if [ ! -d $WP_TESTS_DIR ]; then + # set up testing suite + mkdir -p $WP_TESTS_DIR + rm -rf $WP_TESTS_DIR/{includes,data} + svn export --quiet --ignore-externals https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes + svn export --quiet --ignore-externals https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/data/ $WP_TESTS_DIR/data + fi + + if [ ! -f wp-tests-config.php ]; then + download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php + # remove all forward slashes in the end + WP_CORE_DIR=$(echo $WP_CORE_DIR | sed "s:/\+$::") + sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR/':" "$WP_TESTS_DIR"/wp-tests-config.php + sed $ioption "s:__DIR__ . '/src/':'$WP_CORE_DIR/':" "$WP_TESTS_DIR"/wp-tests-config.php + sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php + sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php + sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php + sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php + fi + +} + +recreate_db() { + shopt -s nocasematch + if [[ $1 =~ ^(y|yes)$ ]] + then + mysqladmin drop $DB_NAME -f --user="$DB_USER" --password="$DB_PASS"$EXTRA + create_db + echo "Recreated the database ($DB_NAME)." + else + echo "Leaving the existing database ($DB_NAME) in place." + fi + shopt -u nocasematch +} + +create_db() { + mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA +} + +install_db() { + + if [ ${SKIP_DB_CREATE} = "true" ]; then + return 0 + fi + + # parse DB_HOST for port or socket references + local PARTS=(${DB_HOST//\:/ }) + local DB_HOSTNAME=${PARTS[0]}; + local DB_SOCK_OR_PORT=${PARTS[1]}; + local EXTRA="" + + if ! [ -z $DB_HOSTNAME ] ; then + if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then + EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp" + elif ! [ -z $DB_SOCK_OR_PORT ] ; then + EXTRA=" --socket=$DB_SOCK_OR_PORT" + elif ! [ -z $DB_HOSTNAME ] ; then + EXTRA=" --host=$DB_HOSTNAME --protocol=tcp" + fi + fi + + # create database + if [ $(mysql --user="$DB_USER" --password="$DB_PASS"$EXTRA --execute='show databases;' | grep ^$DB_NAME$) ] + then + echo "Reinstalling will delete the existing test database ($DB_NAME)" + read -p 'Are you sure you want to proceed? [y/N]: ' DELETE_EXISTING_DB + recreate_db $DELETE_EXISTING_DB + else + create_db + fi +} + +install_wp +install_test_suite +install_db diff --git a/docker-compose-test.yml b/docker-compose-test.yml new file mode 100644 index 0000000..3926e0e --- /dev/null +++ b/docker-compose-test.yml @@ -0,0 +1,26 @@ +version: '3' +services: + test-db: + platform: linux/x86_64 + image: mariadb + environment: + MYSQL_DATABASE: wordpress + MYSQL_ROOT_PASSWORD: wordpress + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:3306"] + interval: 5s + timeout: 2s + retries: 5 + + test-php: + build: + context: . + dockerfile: Dockerfile + depends_on: + test-db: + condition: service_healthy + links: + - test-db + volumes: + - .:/app + command: ["composer", "run-script", "test"] diff --git a/tests/bootstrap.php b/tests/bootstrap.php new file mode 100755 index 0000000..72f381a --- /dev/null +++ b/tests/bootstrap.php @@ -0,0 +1,38 @@ +assertTrue( true ); + } +} -- 2.39.5 From 4ed94f5d602b1dbd376fdacaed3adbd5acee0a1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:35:00 +0200 Subject: [PATCH 07/27] update phpunit workflow --- .forgejo/workflows/phpunit.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 96cae36..f670987 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -29,13 +29,13 @@ jobs: tools: composer, phpunit-polyfills extensions: mysql - # - name: Install Composer dependencies for PHP - # uses: "ramsey/composer-install@v1" + - name: Install Composer dependencies for PHP + uses: "ramsey/composer-install@v1" - # - name: Setup Test Environment - # run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} + - name: Setup Test Environment + run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} - # - name: Unit Testing - # run: ./vendor/bin/phpunit - # env: - # PHP_VERSION: ${{ matrix.php-versions }} + - name: Unit Testing + run: ./vendor/bin/phpunit + env: + PHP_VERSION: ${{ matrix.php-versions }} -- 2.39.5 From 543f8a38f6ebadfc5186e59537fc4a09b773c609 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:35:52 +0200 Subject: [PATCH 08/27] only test php 8.1 for now --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index f670987..005a42c 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -14,7 +14,7 @@ jobs: - 3306:3306 strategy: matrix: - php-versions: ['8.1', '8.2', '8.3'] + php-versions: ['8.1'] include: - wp-version: latest steps: -- 2.39.5 From a8f06441bd685034e2080876685d9faa02995a78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:36:39 +0200 Subject: [PATCH 09/27] update workflow --- .forgejo/workflows/phpunit.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 005a42c..083f2b5 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -1,6 +1,8 @@ name: Unit Testing on: push: + branches: + - main pull_request: jobs: phpunit: -- 2.39.5 From 658bd62af02d0ff56998a7bb0341a0f907af63e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:51:02 +0200 Subject: [PATCH 10/27] test --- .forgejo/workflows/phpunit.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 083f2b5..e33d9cd 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -34,6 +34,9 @@ jobs: - name: Install Composer dependencies for PHP uses: "ramsey/composer-install@v1" + - name: Install mysqladmin + run: apt install mysql-client-core + - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From 69108e3f260ca1d38e1750efeefbf627e4b93747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 20:58:46 +0200 Subject: [PATCH 11/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index e33d9cd..a461070 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -35,7 +35,7 @@ jobs: uses: "ramsey/composer-install@v1" - name: Install mysqladmin - run: apt install mysql-client-core + run: apt update && apt-get -y install mysql-client-core - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From 4aaa8d87cdda08e3185993d6287a2bf599a46148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:03:22 +0200 Subject: [PATCH 12/27] test --- .forgejo/workflows/phpunit.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index a461070..cca8b72 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -19,17 +19,35 @@ jobs: php-versions: ['8.1'] include: - wp-version: latest + name: Run phpunit tests + env: + extensions: mysql + key: cache-v1 steps: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 + - name: Setup cache environment + id: extensioncache + uses: https://github.com/shivammathur/cache-extensions@v1 + with: + php-version: ${{ matrix.php-versions }} + extensions: ${{ env.extensions }} + key: ${{ env.key }} + + - name: Cache extensions + uses: https://code.forgejo.org/actions/cache@v4 + with: + path: ${{ steps.extensioncache.outputs.dir }} + key: ${{ steps.extensioncache.outputs.key }} + restore-keys: ${{ steps.extensioncache.outputs.key }} + - name: Setup PHP uses: https://github.com/shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-versions }} coverage: none tools: composer, phpunit-polyfills - extensions: mysql - name: Install Composer dependencies for PHP uses: "ramsey/composer-install@v1" -- 2.39.5 From 9230f40f13fef638c00e8a8e881a4fe6ba0fa58a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:08:12 +0200 Subject: [PATCH 13/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index cca8b72..b438090 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -53,7 +53,7 @@ jobs: uses: "ramsey/composer-install@v1" - name: Install mysqladmin - run: apt update && apt-get -y install mysql-client-core + run: sudo apt-get update && sudo apt-get -y install mysql-client-core - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From 15b678243d17f054a1db0362fced8f971f3cc107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:09:16 +0200 Subject: [PATCH 14/27] test --- .forgejo/workflows/phpunit.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index b438090..1297039 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -17,8 +17,7 @@ jobs: strategy: matrix: php-versions: ['8.1'] - include: - - wp-version: latest + wp-version: [latest] name: Run phpunit tests env: extensions: mysql -- 2.39.5 From 65bdac1b712d5ee5dd4a5b7bd0a229ce2e9d43f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:27:40 +0200 Subject: [PATCH 15/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 1297039..b15444a 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -52,7 +52,7 @@ jobs: uses: "ramsey/composer-install@v1" - name: Install mysqladmin - run: sudo apt-get update && sudo apt-get -y install mysql-client-core + run: sudo apt update && sudo apt -y install mysql-client - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From 20d965ba279f6ae93e2db825c13e439f3eefa51a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:30:10 +0200 Subject: [PATCH 16/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index b15444a..ccf8899 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -52,7 +52,7 @@ jobs: uses: "ramsey/composer-install@v1" - name: Install mysqladmin - run: sudo apt update && sudo apt -y install mysql-client + run: sudo apt update && sudo apt upgrade && sudo apt -y install mysql-client - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From b478bb51a45b46e8c858702d8c9a65d58f65124f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:32:12 +0200 Subject: [PATCH 17/27] test --- .forgejo/workflows/phpunit.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index ccf8899..421ce49 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -26,20 +26,20 @@ jobs: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - - name: Setup cache environment - id: extensioncache - uses: https://github.com/shivammathur/cache-extensions@v1 - with: - php-version: ${{ matrix.php-versions }} - extensions: ${{ env.extensions }} - key: ${{ env.key }} + # - name: Setup cache environment + # id: extensioncache + # uses: https://github.com/shivammathur/cache-extensions@v1 + # with: + # php-version: ${{ matrix.php-versions }} + # extensions: ${{ env.extensions }} + # key: ${{ env.key }} - - name: Cache extensions - uses: https://code.forgejo.org/actions/cache@v4 - with: - path: ${{ steps.extensioncache.outputs.dir }} - key: ${{ steps.extensioncache.outputs.key }} - restore-keys: ${{ steps.extensioncache.outputs.key }} + # - name: Cache extensions + # uses: https://code.forgejo.org/actions/cache@v4 + # with: + # path: ${{ steps.extensioncache.outputs.dir }} + # key: ${{ steps.extensioncache.outputs.key }} + # restore-keys: ${{ steps.extensioncache.outputs.key }} - name: Setup PHP uses: https://github.com/shivammathur/setup-php@v2 -- 2.39.5 From 8834129a0bd8c0b172f4bdeafd06b4785569db8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:42:21 +0200 Subject: [PATCH 18/27] test --- .forgejo/workflows/phpunit.yml | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 421ce49..9028e82 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -26,20 +26,12 @@ jobs: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - # - name: Setup cache environment - # id: extensioncache - # uses: https://github.com/shivammathur/cache-extensions@v1 - # with: - # php-version: ${{ matrix.php-versions }} - # extensions: ${{ env.extensions }} - # key: ${{ env.key }} - - # - name: Cache extensions - # uses: https://code.forgejo.org/actions/cache@v4 - # with: - # path: ${{ steps.extensioncache.outputs.dir }} - # key: ${{ steps.extensioncache.outputs.key }} - # restore-keys: ${{ steps.extensioncache.outputs.key }} + - name: Cache composer dependencies + id: cache-primes + uses: actions/cache@v4 + with: + path: /root/.cache/composer + key: cache-1 - name: Setup PHP uses: https://github.com/shivammathur/setup-php@v2 @@ -52,7 +44,7 @@ jobs: uses: "ramsey/composer-install@v1" - name: Install mysqladmin - run: sudo apt update && sudo apt upgrade && sudo apt -y install mysql-client + run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} -- 2.39.5 From eb16b3173eadfbd5939a6a4b72777f0a0a10ed39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 21:55:36 +0200 Subject: [PATCH 19/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 9028e82..d6a739d 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -47,7 +47,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root 127.0.0.1 ${{ matrix.wp-version }} + run: bash bin/install-wp-tests.sh wordpress_test root root mysql ${{ matrix.wp-version }} - name: Unit Testing run: ./vendor/bin/phpunit -- 2.39.5 From 5d8915abcc7ac8e7139f7707f8f7e5824480e3e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 22:12:42 +0200 Subject: [PATCH 20/27] test --- .forgejo/workflows/phpunit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index d6a739d..2f24bea 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest services: mysql: - image: 'mariadb:10.7' + image: mariadb env: MYSQL_ROOT_PASSWORD: root ports: @@ -47,7 +47,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root mysql ${{ matrix.wp-version }} + run: bash bin/install-wp-tests.sh wordpress_test root root http://mysql:3306 ${{ matrix.wp-version }} - name: Unit Testing run: ./vendor/bin/phpunit -- 2.39.5 From 3313dfc7f39a7ce27198bf24a05f0445732c6b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 22:25:41 +0200 Subject: [PATCH 21/27] test --- .forgejo/workflows/phpunit.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 2f24bea..e15e351 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -26,12 +26,12 @@ jobs: - name: Checkout uses: https://code.forgejo.org/actions/checkout@v4 - - name: Cache composer dependencies - id: cache-primes - uses: actions/cache@v4 - with: - path: /root/.cache/composer - key: cache-1 + # - name: Cache composer dependencies + # id: cache-primes + # uses: actions/cache@v4 + # with: + # path: /root/.cache/composer + # key: cache-1 - name: Setup PHP uses: https://github.com/shivammathur/setup-php@v2 @@ -47,7 +47,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root http://mysql:3306 ${{ matrix.wp-version }} + run: bash bin/install-wp-tests.sh wordpress_test root root 'http://mysql:3306' ${{ matrix.wp-version }} - name: Unit Testing run: ./vendor/bin/phpunit -- 2.39.5 From 34d896d40dd310948a9bf3c20c6992c790f8007f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 22:38:41 +0200 Subject: [PATCH 22/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index e15e351..6e128d2 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -47,7 +47,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root 'http://mysql:3306' ${{ matrix.wp-version }} + run: bash bin/install-wp-tests.sh wordpress_test root root mysql:3306 ${{ matrix.wp-version }} - name: Unit Testing run: ./vendor/bin/phpunit -- 2.39.5 From c0dc94844a7b95621c964d456da71373b289647f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Fri, 20 Sep 2024 22:52:14 +0200 Subject: [PATCH 23/27] test --- .forgejo/workflows/phpunit.yml | 5 +---- .woodpecker/test.yml | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 .woodpecker/test.yml diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 6e128d2..283d093 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -12,12 +12,9 @@ jobs: image: mariadb env: MYSQL_ROOT_PASSWORD: root - ports: - - 3306:3306 strategy: matrix: php-versions: ['8.1'] - wp-version: [latest] name: Run phpunit tests env: extensions: mysql @@ -47,7 +44,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root mysql:3306 ${{ matrix.wp-version }} + run: bash bin/install-wp-tests.sh wordpress_test root root mysql latest - name: Unit Testing run: ./vendor/bin/phpunit diff --git a/.woodpecker/test.yml b/.woodpecker/test.yml new file mode 100644 index 0000000..fe28da6 --- /dev/null +++ b/.woodpecker/test.yml @@ -0,0 +1,19 @@ +when: + - event: push + branch: woodpecker + +steps: + - name: build + image: php:8.3 + environment: + WP_TESTS_PHPUNIT_POLYFILLS_PATH: vendor/yoast/phpunit-polyfills + commands: + - apt -y update + - apt -y install libonig-dev + - docker-php-ext-install mbstring mysqli pdo_mysql intl gd zip bz2 + - docker-php-ext-enable mbstring mysqli pdo_mysql intl gd zip bz2 + - composer require --dev yoast/phpunit-polyfills:"^3.0" + - composer install + - bash bin/install-wp-tests.sh wordpress_tests root mysql mysql latest true + - phpunit --configuration phpunit.xml.dist + -- 2.39.5 From 658b65adf1c5602b9c4e56ccb5a696b67e762aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Sat, 21 Sep 2024 00:32:12 +0200 Subject: [PATCH 24/27] test --- .forgejo/workflows/phpunit.yml | 2 +- .forgejo/workflows/tests.yml | 114 --------------------------------- 2 files changed, 1 insertion(+), 115 deletions(-) delete mode 100755 .forgejo/workflows/tests.yml diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 283d093..05e47b8 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -44,7 +44,7 @@ jobs: run: sudo apt update && sudo apt -y upgrade && sudo apt -y install mysql-client - name: Setup Test Environment - run: bash bin/install-wp-tests.sh wordpress_test root root mysql latest + run: bash bin/install-wp-tests.sh wordpress_test root root localhost latest - name: Unit Testing run: ./vendor/bin/phpunit diff --git a/.forgejo/workflows/tests.yml b/.forgejo/workflows/tests.yml deleted file mode 100755 index 899bae0..0000000 --- a/.forgejo/workflows/tests.yml +++ /dev/null @@ -1,114 +0,0 @@ -workflows: - version: 2 - main: - jobs: - - php56-build - - php70-build - - php71-build - - php72-build - - php73-build - - php74-build - -version: 2 - -job-references: - mysql_image: &mysql_image - circleci/mysql:5.6 - - setup_environment: &setup_environment - name: "Setup Environment Variables" - command: | - echo "export PATH=$HOME/.composer/vendor/bin:$PATH" >> $BASH_ENV - source /home/circleci/.bashrc - - install_dependencies: &install_dependencies - name: "Install Dependencies" - command: | - sudo apt-get update && sudo apt-get install subversion - sudo -E docker-php-ext-install mysqli - sudo sh -c "printf '\ndeb http://ftp.us.debian.org/debian sid main\n' >> /etc/apt/sources.list" - sudo apt-get update && sudo apt-get install mysql-client-5.7 - - php_job: &php_job - environment: - - WP_TESTS_DIR: "/tmp/wordpress-tests-lib" - - WP_CORE_DIR: "/tmp/wordpress/" - steps: - - checkout - - run: *setup_environment - - run: *install_dependencies - - run: - name: "Run Tests" - command: | - composer global require "phpunit/phpunit=5.7.*" - composer global require wp-coding-standards/wpcs - phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs - phpcs - rm -rf $WP_TESTS_DIR $WP_CORE_DIR - bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest - phpunit - WP_MULTISITE=1 phpunit - -jobs: - php56-build: - <<: *php_job - docker: - - image: circleci/php:5.6 - - image: *mysql_image - steps: - - checkout - - run: *setup_environment - - run: *install_dependencies - - run: - name: "Run Tests" - command: | - composer global require "phpunit/phpunit=5.7.*" - composer global require wp-coding-standards/wpcs - phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs - phpcs - SKIP_DB_CREATE=false - rm -rf $WP_TESTS_DIR $WP_CORE_DIR - bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 5.5 $SKIP_DB_CREATE - phpunit - WP_MULTISITE=1 phpunit - SKIP_DB_CREATE=true - rm -rf $WP_TESTS_DIR $WP_CORE_DIR - bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest $SKIP_DB_CREATE - phpunit - WP_MULTISITE=1 phpunit - SKIP_DB_CREATE=true - rm -rf $WP_TESTS_DIR $WP_CORE_DIR - bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 trunk $SKIP_DB_CREATE - phpunit - WP_MULTISITE=1 phpunit - SKIP_DB_CREATE=true - - php70-build: - <<: *php_job - docker: - - image: circleci/php:7.0 - - image: *mysql_image - - php71-build: - <<: *php_job - docker: - - image: circleci/php:7.1 - - image: *mysql_image - - php72-build: - <<: *php_job - docker: - - image: circleci/php:7.2 - - image: *mysql_image - - php73-build: - <<: *php_job - docker: - - image: circleci/php:7.3 - - image: *mysql_image - - php74-build: - <<: *php_job - docker: - - image: circleci/php:7.4 - - image: *mysql_image -- 2.39.5 From f070a2d48d76a9bd7f399f92d2d4751b8afd20f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Sat, 21 Sep 2024 00:41:02 +0200 Subject: [PATCH 25/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 05e47b8..ea79fec 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -47,6 +47,6 @@ jobs: run: bash bin/install-wp-tests.sh wordpress_test root root localhost latest - name: Unit Testing - run: ./vendor/bin/phpunit + run: phpunit env: PHP_VERSION: ${{ matrix.php-versions }} -- 2.39.5 From 337afe84fb7ad9110beabfaf6c4b3861e590de22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Sat, 21 Sep 2024 00:49:22 +0200 Subject: [PATCH 26/27] test --- .forgejo/workflows/phpunit.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index ea79fec..5d18ef8 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -46,6 +46,8 @@ jobs: - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root localhost latest + - run: cat /tmp/wordpress/wp-config.php + - name: Unit Testing run: phpunit env: -- 2.39.5 From 1dfbf0e293ff9088606a79eedf746588083fbe8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Menrath?= Date: Sat, 21 Sep 2024 00:55:09 +0200 Subject: [PATCH 27/27] test --- .forgejo/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.forgejo/workflows/phpunit.yml b/.forgejo/workflows/phpunit.yml index 5d18ef8..679a19e 100644 --- a/.forgejo/workflows/phpunit.yml +++ b/.forgejo/workflows/phpunit.yml @@ -46,7 +46,7 @@ jobs: - name: Setup Test Environment run: bash bin/install-wp-tests.sh wordpress_test root root localhost latest - - run: cat /tmp/wordpress/wp-config.php + - run: ls /tmp/wordpress/ - name: Unit Testing run: phpunit -- 2.39.5