Skip to content

Run QIT for all extensions #4

Run QIT for all extensions

Run QIT for all extensions #4

Workflow file for this run

name: Run QIT for all extensions
# **What it does**: Runs a suite of tests for all Grow extensions.
# **Why we have it**: To be able to run tests for all extensions at once. For example when we want to compatibility test a new version of the platform (WP/WC).
on:
workflow_dispatch:
inputs:
# Basic params.
version:
description: 'Version to be tested'
required: true
type: choice
options:
- latest
- dev
wait:
description: 'Should wait for results'
default: false
type: boolean
# Configure which tests to run.
test-activation:
description: 'Should activation be tested?'
required: true
default: true
type: boolean
test-security:
description: 'Should security be tested?'
required: true
default: true
type: boolean
test-phpstan:
description: 'Should phpstan be tested?'
required: true
default: true
type: boolean
test-api:
description: 'Should API be tested?'
required: true
default: true
type: boolean
test-e2e:
description: 'Should E2E be tested? (takes a lot of time)'
required: true
default: false
type: boolean
# Advanced customization.
ignore-fail:
description: Should pass even if any awaited test fails.
required: false
default: false
type: boolean
options:
description: 'Additional options for `qit` command, like `--optional_features=hpos`.'
required: false
jobs:
qit-tests:
name: Run QIT Tests
runs-on: ubuntu-latest
strategy:
# Allow to test extensions even if one of them fails.
fail-fast: false
matrix:
# List of extensions to be tested.
extension: [automatewoo, automatewoo-birthdays, automatewoo-referrals, google-listings-and-ads, woocommerce-google-analytics-integration]
steps:
- name: Run QIT
uses: woocommerce/grow/run-qit-extension@add/qit-workflows-test-build
with:
qit-partner-user: ${{ secrets.QIT_PARTNER_USER }}
qit-partner-secret: ${{ secrets.QIT_PARTNER_SECRET }}
version: ${{ inputs.version }}
wait: ${{ inputs.wait }}
test-activation: ${{ inputs.test-activation }}
test-security: ${{ inputs.test-security }}
test-phpstan: ${{ inputs.test-phpstan }}
test-api: ${{ inputs.test-api }}
test-e2e: ${{ inputs.test-e2e }}
extension: ${{ matrix.extension }}
ignore-fail: ${{ inputs.ignore-fail }}
options: ${{ inputs.options }}