Skip to content

Commit

Permalink
Persist test suites and use absolute path to fix configuration error
Browse files Browse the repository at this point in the history
- Set WP_LATEST_TESTS_DIR in .env to an absolute path ($HOME/wordpress-latest-tests-lib).
- Modify workspace artifact step to copy wordpress-latest-tests-lib if it exists.
- Add verification steps in test jobs to ensure the .env file and test suite configuration are present.
- This fixes the "Run 'configure_test_suites' before running tests" error by ensuring wp-tests-config.php is available in the test environment.
  • Loading branch information
zackkatz committed Feb 17, 2025
1 parent 0f344fc commit f02c812
Showing 1 changed file with 29 additions and 22 deletions.
51 changes: 29 additions & 22 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ jobs:
- name: Clone GV Tooling
run: gh repo clone GravityKit/Tooling $HOME/tooling

# Create .env file in docker-unit-tests folder after cloning
# Create .env file in docker-unit-tests folder with absolute WP_LATEST_TESTS_DIR
- name: Create .env file in docker-unit-tests if missing
run: |
mkdir -p "$HOME/tooling/docker-unit-tests"
if [ ! -f "$HOME/tooling/docker-unit-tests/.env" ]; then
echo "PLUGIN_DIR=$HOME" > "$HOME/tooling/docker-unit-tests/.env"
echo "WP_LATEST_TESTS_DIR=./wordpress-latest-tests-lib" >> "$HOME/tooling/docker-unit-tests/.env"
echo "PHPUNIT_DIR=./phpunit" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GF_PLUGIN_DIR=./gravityforms" >> "$HOME/tooling/docker-unit-tests/.env"
echo "WP_LATEST_TESTS_DIR=$HOME/wordpress-latest-tests-lib" >> "$HOME/tooling/docker-unit-tests/.env"
echo "PHPUNIT_DIR=$HOME/phpunit" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GF_PLUGIN_DIR=$HOME/gravityforms" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GH_AUTH_TOKEN=${{ secrets.GH_ACCESS_TOKEN }}" >> "$HOME/tooling/docker-unit-tests/.env"
fi
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:
GH_AUTH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
run: bash $HOME/tooling/docker-unit-tests/docker-unit-tests.sh prepare_all

# Persist workspace artifact including test suites
# Persist workspace artifact including the test suites folder
- name: Prepare Workspace Artifact
run: |
mkdir -p workspace_artifact
Expand Down Expand Up @@ -118,16 +118,14 @@ jobs:
rsync -a /tmp/workspace/ $HOME/
fi
# Ensure .env file in docker-unit-tests exists (re-create if necessary)
- name: Ensure .env file in docker-unit-tests exists
# Ensure .env file in docker-unit-tests exists (should be present from prepare job)
- name: Verify .env file in docker-unit-tests exists
run: |
mkdir -p "$HOME/tooling/docker-unit-tests"
if [ ! -f "$HOME/tooling/docker-unit-tests/.env" ]; then
echo "PLUGIN_DIR=$HOME" > "$HOME/tooling/docker-unit-tests/.env"
echo "WP_LATEST_TESTS_DIR=./wordpress-latest-tests-lib" >> "$HOME/tooling/docker-unit-tests/.env"
echo "PHPUNIT_DIR=./phpunit" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GF_PLUGIN_DIR=./gravityforms" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GH_AUTH_TOKEN=${{ secrets.GH_ACCESS_TOKEN }}" >> "$HOME/tooling/docker-unit-tests/.env"
if [ -f "$HOME/tooling/docker-unit-tests/.env" ]; then
echo ".env file exists."
else
echo ".env file missing!" >&2
exit 1
fi
- name: Run PHP 7.4 Unit Tests
Expand Down Expand Up @@ -160,15 +158,24 @@ jobs:
rsync -a /tmp/workspace/ $HOME/
fi
- name: Ensure .env file in docker-unit-tests exists
- name: Verify .env file in docker-unit-tests exists
run: |
mkdir -p "$HOME/tooling/docker-unit-tests"
if [ ! -f "$HOME/tooling/docker-unit-tests/.env" ]; then
echo "PLUGIN_DIR=$HOME" > "$HOME/tooling/docker-unit-tests/.env"
echo "WP_LATEST_TESTS_DIR=./wordpress-latest-tests-lib" >> "$HOME/tooling/docker-unit-tests/.env"
echo "PHPUNIT_DIR=./phpunit" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GF_PLUGIN_DIR=./gravityforms" >> "$HOME/tooling/docker-unit-tests/.env"
echo "GH_AUTH_TOKEN=${{ secrets.GH_ACCESS_TOKEN }}" >> "$HOME/tooling/docker-unit-tests/.env"
if [ -f "$HOME/tooling/docker-unit-tests/.env" ]; then
echo ".env file exists."
else
echo ".env file missing!" >&2
exit 1
fi
# (Optionally) Verify that the test suite is configured
- name: Check Test Suite Configuration
run: |
source $HOME/tooling/docker-unit-tests/.env
if [ ! -f "$WP_LATEST_TESTS_DIR/wp-tests-config.php" ]; then
echo "Test suite not configured!" >&2
exit 1
else
echo "Test suite is configured."
fi
- name: Run PHP 8.0 Unit Tests
Expand Down

0 comments on commit f02c812

Please sign in to comment.