Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v2 release #85

Merged
merged 39 commits into from
Jul 6, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
751c138
chore: replace AutocompleteTokenfield with Newspack Components versio…
dkoo Feb 25, 2021
f223053
feat: use post categories and tags for all listing post types (#39)
dkoo Feb 26, 2021
823f66a
feat: better integration with Newspack Theme features
dkoo Mar 19, 2021
d78a3f7
feat: add settings for individual listing type URL slugs
dkoo Mar 19, 2021
5befca7
fix: wp_insert_post filter name and theme_mod filter
dkoo Mar 19, 2021
a2bda56
fix: newspack_blocks support slug
dkoo Mar 19, 2021
42d04d2
feat: add revisions support for listings
dkoo Mar 19, 2021
ed5430e
chore: update outdated docblock
dkoo Mar 19, 2021
0de7716
refactor: use material icons with Newspack color
dkoo Mar 19, 2021
a8caf8e
Merge pull request #46 from Automattic/refactor/use-material-icons
dkoo Mar 23, 2021
60101b1
Merge branch 'epic/phase-2' into feat/listing-post-enhancements
dkoo Mar 23, 2021
16af17b
fix: warning about default meta value
dkoo Mar 24, 2021
fb61530
fix: util for checking post type on new posts
dkoo Mar 26, 2021
74a5599
chore: update label of "hide author" setting
dkoo Mar 29, 2021
988521e
feat: flush permalinks automatically if updating slug option
dkoo Mar 29, 2021
0a37042
Merge pull request #45 from Automattic/feat/listing-post-enhancements
dkoo Mar 30, 2021
7b59032
feat: update cpt icon and block icons
thomasguillot Apr 7, 2021
b489015
fix: remove material packages
thomasguillot Apr 7, 2021
f509f36
fix: failing npm ci command
dkoo Apr 12, 2021
497d43b
Merge pull request #50 from Automattic/update/block-icons-gutenberg
dkoo Apr 12, 2021
c04cb80
[WIP] feat: harden post type usage and establish relationships betwee…
dkoo Apr 29, 2021
e3fa2da
refactor: use AutocompleteWithSuggestions from newspack-components (#56)
dkoo May 21, 2021
ffbea00
feat: CSV importer script (#51)
dkoo May 26, 2021
896f68f
feat: add a new global setting and post option to hide date (#57)
dkoo Jun 1, 2021
c7c4cea
fix: use value property of selection from AutocompleteWithSuggestions…
dkoo Jun 2, 2021
8c846c6
Merge branch 'master' into epic/phase-2
dkoo Jun 4, 2021
a2fcf84
feat: convert legacy custom terms to regular post terms (#67)
dkoo Jun 11, 2021
1a2de19
test: init test suite (#60)
dkoo Jun 11, 2021
29b0a34
fix: activation PHP warning (#70)
dkoo Jun 15, 2021
7d2ef64
feat: support Newspack Sponsors for listings (#65)
dkoo Jun 15, 2021
710f34c
feat: update price block to use placeholder and large font size (#71)
thomasguillot Jun 18, 2021
c821a09
fix: guard against nonexistent meta object (#66)
dkoo Jun 21, 2021
ce8d80a
Merge branch 'master' into epic/phase-2
dkoo Jun 21, 2021
33676cd
Merge branch 'master' into epic/phase-2
dkoo Jun 21, 2021
06aff81
feat: child and related listings UI (#58)
dkoo Jun 21, 2021
e987e76
fix: default listings to one-column-wide.php post template (#77)
dkoo Jun 22, 2021
b8bccc3
chore: gate legacy taxonomy term deletion behind an environment constant
dkoo Jun 22, 2021
4576805
fix: memory leaks from legacy term utilities (#81)
dkoo Jun 30, 2021
4630b08
Merge branch 'master' into epic/phase-2
dkoo Jul 5, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 43 additions & 11 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,54 @@ jobs:
root: ~/
paths:
- project

# Linting
lint:
lint-js-scss:
docker:
- image: circleci/php:7.2-node-browsers
steps:
- checkout_with_workspace
- run:
name: Run SCSS Linter
command: npm run lint:js
name: Run Linter
command: npm run lint

test-php:
docker:
- image: circleci/php:7.2
- image: circleci/mysql:5.6.50
environment:
- WP_TESTS_DIR: '/tmp/wordpress-tests-lib'
- WP_CORE_DIR: '/tmp/wordpress/'
steps:
- checkout
- run:
name: Setup Environment Variables
command: |
echo "export PATH=$HOME/.composer/vendor/bin:$PATH" >> $BASH_ENV
source /home/circleci/.bashrc
- run:
name: Run JS Linter
command: npm run lint:js
name: Install Dependencies
command: |
sudo apt-get update && sudo apt-get install subversion
sudo -E docker-php-ext-install mysqli
sudo apt-get update && sudo apt-get install default-mysql-client
- run:
name: Run Tests
command: |
composer install
composer global require "phpunit/phpunit=5.7.*"
rm -rf $WP_TESTS_DIR $WP_CORE_DIR
bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest
phpunit

lint-php:
docker:
- image: circleci/php:7.2
steps:
- checkout
- run:
name: Run PHP Linter
name: Lint PHP Files
command: |
composer install
npm run lint:php
./vendor/bin/phpcs

# Release job
release:
Expand Down Expand Up @@ -71,10 +101,12 @@ jobs:

workflows:
version: 2
main:
all:
jobs:
- test-php
- build
- lint:
- lint-php
- lint-js-scss:
requires:
- build
- release:
Expand Down
2 changes: 1 addition & 1 deletion .distignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,4 +30,4 @@ node_modules
/bin
/src/**/*.js
*.scss
import
/import
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
.DS_Store
.cache
/vendor/
/node_modules/
/dist/
.DS_Store
release
.cache
/import/
155 changes: 155 additions & 0 deletions bin/install-wp-tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
#!/usr/bin/env bash

if [ $# -lt 3 ]; then
echo "usage: $0 <db-name> <db-user> <db-pass> [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-nightly
download https://wordpress.org/nightly-builds/wordpress-latest.zip $TMPDIR/wordpress-nightly/wordpress-nightly.zip
unzip -q $TMPDIR/wordpress-nightly/wordpress-nightly.zip -d $TMPDIR/wordpress-nightly/
mv $TMPDIR/wordpress-nightly/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.github.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
svn co --ignore-externals --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes
svn co --ignore-externals --quiet 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/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

}

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
mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
}

install_wp
install_test_suite
install_db
Loading