Fix GitHub Actions failures: code quality, tests, and linting
- Fix shellcheck warnings in bin/install-wp-tests.sh (quote variables, fix command -v usage) - Remove trailing spaces in .github/workflows/phpunit.yml - Add phpmd.xml to exclude camelCase checks for WordPress naming conventions - Update composer.json to use phpmd.xml configuration - Remove trailing commas in .eslintrc.js for Codacy compliance - Add .markdownlint.json to configure markdown linting rules - Improve Cypress test reliability with increased timeouts - Update loginAsAdmin command with better error handling - Make plugin activation checks more robust in Cypress tests 🤖 Generated with [Qoder][https://qoder.com]
This commit is contained in:
@@ -17,16 +17,15 @@ WP_TESTS_DIR=${WP_TESTS_DIR-/tmp/wordpress-tests-lib}
|
||||
WP_CORE_DIR=${WP_CORE_DIR-/tmp/wordpress/}
|
||||
|
||||
download() {
|
||||
if [ $(which curl) ]; then
|
||||
if command -v curl > /dev/null; then
|
||||
curl -s "$1" > "$2";
|
||||
elif [ $(which wget) ]; then
|
||||
elif command -v wget > /dev/null; 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
|
||||
@@ -53,30 +52,27 @@ set -ex
|
||||
|
||||
install_wp() {
|
||||
|
||||
if [ -d $WP_CORE_DIR ]; then
|
||||
if [ -d "$WP_CORE_DIR" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
mkdir -p $WP_CORE_DIR
|
||||
mkdir -p "$WP_CORE_DIR"
|
||||
|
||||
if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
|
||||
mkdir -p $WP_CORE_DIR
|
||||
download https://wordpress.org/nightly-builds/wordpress-latest.zip $WP_CORE_DIR/wordpress-nightly.zip
|
||||
unzip -q $WP_CORE_DIR/wordpress-nightly.zip -d $WP_CORE_DIR
|
||||
rm $WP_CORE_DIR/wordpress-nightly.zip
|
||||
mkdir -p "$WP_CORE_DIR"
|
||||
download https://wordpress.org/nightly-builds/wordpress-latest.zip "$WP_CORE_DIR/wordpress-nightly.zip"
|
||||
unzip -q "$WP_CORE_DIR/wordpress-nightly.zip" -d "$WP_CORE_DIR"
|
||||
rm "$WP_CORE_DIR/wordpress-nightly.zip"
|
||||
else
|
||||
if [ $WP_VERSION == 'latest' ]; then
|
||||
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/ $WP_CORE_DIR/wp-latest.json
|
||||
download https://api.wordpress.org/core/version-check/1.7/ "$WP_CORE_DIR/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'[^"]*' $WP_CORE_DIR/wp-latest.json | sed 's/"version":"//' | head -1)
|
||||
VERSION_ESCAPED=$(echo "$WP_VERSION" | sed 's/\./\\\\./g')
|
||||
LATEST_VERSION=$(grep -o '"version":"'"$VERSION_ESCAPED"'[^"]*' "$WP_CORE_DIR/wp-latest.json" | sed 's/"version":"//' | head -1)
|
||||
fi
|
||||
if [[ -z "$LATEST_VERSION" ]]; then
|
||||
local ARCHIVE_NAME="wordpress-$WP_VERSION"
|
||||
@@ -86,12 +82,12 @@ install_wp() {
|
||||
else
|
||||
local ARCHIVE_NAME="wordpress-$WP_VERSION"
|
||||
fi
|
||||
download https://wordpress.org/${ARCHIVE_NAME}.tar.gz $WP_CORE_DIR/wordpress.tar.gz
|
||||
tar --strip-components=1 -zxmf $WP_CORE_DIR/wordpress.tar.gz -C $WP_CORE_DIR
|
||||
rm $WP_CORE_DIR/wordpress.tar.gz
|
||||
download https://wordpress.org/"${ARCHIVE_NAME}".tar.gz "$WP_CORE_DIR/wordpress.tar.gz"
|
||||
tar --strip-components=1 -zxmf "$WP_CORE_DIR/wordpress.tar.gz" -C "$WP_CORE_DIR"
|
||||
rm "$WP_CORE_DIR/wordpress.tar.gz"
|
||||
fi
|
||||
|
||||
download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php
|
||||
download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php "$WP_CORE_DIR/wp-content/db.php"
|
||||
}
|
||||
|
||||
install_test_suite() {
|
||||
@@ -103,16 +99,14 @@ install_test_suite() {
|
||||
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
|
||||
# Use git instead of svn
|
||||
if [ ! -d "$WP_TESTS_DIR" ]; then
|
||||
mkdir -p "$WP_TESTS_DIR"
|
||||
git clone --quiet --depth=1 https://github.com/WordPress/wordpress-develop.git /tmp/wordpress-develop
|
||||
if [ -d /tmp/wordpress-develop/tests/phpunit/includes ]; then
|
||||
cp -r /tmp/wordpress-develop/tests/phpunit/includes $WP_TESTS_DIR/
|
||||
cp -r /tmp/wordpress-develop/tests/phpunit/includes "$WP_TESTS_DIR/"
|
||||
fi
|
||||
if [ -d /tmp/wordpress-develop/tests/phpunit/data ]; then
|
||||
cp -r /tmp/wordpress-develop/tests/phpunit/data $WP_TESTS_DIR/
|
||||
cp -r /tmp/wordpress-develop/tests/phpunit/data "$WP_TESTS_DIR/"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -122,8 +116,7 @@ install_test_suite() {
|
||||
else
|
||||
download https://raw.githubusercontent.com/WordPress/wordpress-develop/master/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
|
||||
fi
|
||||
# remove all forward slashes in the end
|
||||
WP_CORE_DIR=$(echo $WP_CORE_DIR | sed "s:/\+$::")
|
||||
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/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php
|
||||
sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php
|
||||
@@ -143,24 +136,23 @@ install_db() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
# parse DB_HOST for port or socket references
|
||||
local PARTS=(${DB_HOST//\:/ })
|
||||
local PARTS
|
||||
IFS=':' read -ra 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
|
||||
if [ -n "$DB_HOSTNAME" ] ; then
|
||||
if [[ $DB_SOCK_OR_PORT =~ ^[0-9]+$ ]]; then
|
||||
EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
|
||||
elif ! [ -z $DB_SOCK_OR_PORT ] ; then
|
||||
elif [ -n "$DB_SOCK_OR_PORT" ] ; then
|
||||
EXTRA=" --socket=$DB_SOCK_OR_PORT"
|
||||
elif ! [ -z $DB_HOSTNAME ] ; then
|
||||
elif [ -n "$DB_HOSTNAME" ] ; then
|
||||
EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
|
||||
fi
|
||||
fi
|
||||
|
||||
# create database
|
||||
mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
|
||||
mysqladmin create "$DB_NAME" --user="$DB_USER" --password="$DB_PASS"$EXTRA
|
||||
}
|
||||
|
||||
install_wp
|
||||
|
||||
Reference in New Issue
Block a user