Skip to content
This repository has been archived by the owner on Nov 13, 2024. It is now read-only.

Commit

Permalink
Merge pull request #8 from a8cteam51/github/actions/ci
Browse files Browse the repository at this point in the history
Adds a github phpunit workflow
  • Loading branch information
n3f authored Oct 23, 2024
2 parents a7f8a51 + 4f8bc0c commit 0164400
Show file tree
Hide file tree
Showing 8 changed files with 105 additions and 4 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/php-coding-standards.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: PHP Coding Standards

on:
push:
pull_request:
branches: [ trunk, develop ]

jobs:
Expand Down
88 changes: 88 additions & 0 deletions .github/workflows/php-phpunit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# This is a basic workflow to help you get started with Actions

name: PHPUnit

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the trunk branch
on:
pull_request:
branches: [ trunk ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "phpunit"
phpunit:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

# setup the composer cache (vendor) with github actions cache and the cache dir defined in the previous step
- uses: actions/cache@v4
with:
path: /tmp/composer-cache
key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}

# run composer install
- name: Composer Install
uses: php-actions/composer@v6

# get the node version from the .nvmrc file
- name: Read .nvmrc
run: echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_OUTPUT
id: nvm

# setup node based on the version from the .nvmrc file, fetched in the previous step
- name: Setup Node.js (.nvmrc)
uses: actions/setup-node@v4
with:
node-version: "${{ steps.nvm.outputs.NVMRC }}"
cache: 'npm'

# run the ci equivalent of npm install
- name: npm ci
run: |
npm ci
# Let's cache wp-env
- name: Grab wp-env dir
id: wp_env_dir
run: |
echo "WPENV_DIR=$(npx wp-env install-path)" >> $GITHUB_OUTPUT
# setup the wp-env cache
- name: Cache wp-env
uses: actions/cache@v4
with:
path: ${{ steps.wp_env_dir.outputs.WPENV_DIR }}
key: ${{ runner.os }}-${{ hashFiles('**/.wp-env.json') }}

# run the wp-env setup command (wp-env start)
- name: setup wp env
run: |
npx wp-env start --xdebug
# Run the PHPUnit tests
- name: run PHPUnit
run: |
npm run test:coverage
- name: Generate code coverage report
uses: irongut/[email protected]
with:
filename: coverage.xml
badge: true
hide_branch_rate: 'false'
hide_complexity: 'false'
output: both
format: markdown

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
recreate: true
path: code-coverage-results.md
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -384,3 +384,4 @@ $RECYCLE.BIN/

*.code-workspace
.phpunit.result.cache
coverage.xml
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
stable
lts/*
4 changes: 4 additions & 0 deletions bin/test-with-coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env bash

# Run tests with coverage
XDEBUG_MODE=coverage vendor/bin/phpunit --coverage-cobertura=coverage.xml
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"check-engines": "wp-scripts check-engines",
"check-licenses": "wp-scripts check-licenses",
"start": "npm-run-all --parallel start:**",
"test": "wp-env run tests-cli --env-cwd=wp-content/plugins/sift-decisions vendor/bin/phpunit"
"test": "wp-env run tests-cli --env-cwd=wp-content/plugins/sift-decisions vendor/bin/phpunit",
"test:coverage": "wp-env run tests-cli --env-cwd=wp-content/plugins/sift-decisions bin/test-with-coverage.sh"
}
}
6 changes: 6 additions & 0 deletions phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,10 @@
<directory suffix="Test.php">./tests/</directory>
</testsuite>
</testsuites>

<coverage>
<include>
<directory suffix=".php">./src/</directory>
</include>
</coverage>
</phpunit>
3 changes: 2 additions & 1 deletion src/inc/woocommerce-actions.php
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,8 @@ public static function link_session_to_user( string $session_id, string $user_id
*/
public static function add_to_cart( string $cart_item_key ) {
$cart_item = \WC()->cart->get_cart_item( $cart_item_key );
/** @var \WC_Abstract_Legacy_Product $product */
// phpcs:ignore
/** @var \WC_Product $product */
$product = $cart_item['data'] ?? null;
$user = wp_get_current_user();

Expand Down

0 comments on commit 0164400

Please sign in to comment.