mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
The new `concurrency` setting can be used to ensure only a single workflow run or job is in progress. When used in combination with the `cancel-in-progress` setting, incomplete workflow runs can be cancelled automatically to prevent running workflows unnecessarily. The workflows that take longer to run previously had this built into a step and utilized a 3rd-party action. Now that this is natively supported by GitHub Actions, using that is preferred. This option is currently in beta, but is stable enough to use in our workflows for the time being. Props ocean90. Fixes #53080. git-svn-id: https://develop.svn.wordpress.org/trunk@50930 602fd350-edb4-49c9-b593-d223f7449a82
94 lines
2.8 KiB
YAML
94 lines
2.8 KiB
YAML
name: JavaScript Tests
|
|
|
|
on:
|
|
# JavaScript testing was introduced in WordPress 3.8.
|
|
push:
|
|
branches:
|
|
- master
|
|
- trunk
|
|
- '3.[89]'
|
|
- '[4-9].[0-9]'
|
|
tags:
|
|
- '3.[89]*'
|
|
- '[4-9].[0-9]*'
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
- trunk
|
|
- '3.[89]'
|
|
- '[4-9].[0-9]'
|
|
paths:
|
|
# Any change to a JavaScript file should run tests.
|
|
- '**.js'
|
|
# These files configure NPM. Changes could affect the outcome.
|
|
- 'package*.json'
|
|
# This file configures ESLint. Changes could affect the outcome.
|
|
- '.eslintignore'
|
|
# This file configures JSHint. Changes could affect the outcome.
|
|
- '.jshintrc'
|
|
# Any change to the QUnit directory should run tests.
|
|
- 'tests/qunit/**'
|
|
# Changes to workflow files should always verify all workflows are successful.
|
|
- '.github/workflows/*.yml'
|
|
workflow_dispatch:
|
|
|
|
# Cancels all previous workflow runs for pull requests that have not completed.
|
|
concurrency:
|
|
# The concurrency group contains the workflow name and the branch name for pull requests
|
|
# or the commit hash for any other events.
|
|
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
# Runs the QUnit tests for WordPress.
|
|
#
|
|
# Performs the following steps:
|
|
# - Checks out the repository.
|
|
# - Logs debug information about the runner container.
|
|
# - Installs NodeJS 14.
|
|
# - Sets up caching for NPM.
|
|
# - Logs updated debug information.
|
|
# _ Installs NPM dependencies using install-changed to hash the `package.json` file.
|
|
# - Run the WordPress QUnit tests.
|
|
# - todo: Configure Slack notifications for failing tests.
|
|
test-js:
|
|
name: QUnit Tests
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }}
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f # v2.3.4
|
|
|
|
- name: Log debug information
|
|
run: |
|
|
npm --version
|
|
node --version
|
|
git --version
|
|
svn --version
|
|
|
|
- name: Install NodeJS
|
|
uses: actions/setup-node@46071b5c7a2e0c34e49c3cb8a0e792e86e18d5ea # v2.1.5
|
|
with:
|
|
node-version: 14
|
|
|
|
- name: Cache NodeJS modules
|
|
uses: actions/cache@26968a09c0ea4f3e233fdddbafd1166051a095f6 # v2.1.4
|
|
env:
|
|
cache-name: cache-node-modules
|
|
with:
|
|
# npm cache files are stored in `~/.npm` on Linux/macOS
|
|
path: ~/.npm
|
|
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
|
|
|
- name: Log debug information
|
|
run: |
|
|
npm --version
|
|
node --version
|
|
|
|
- name: Install Dependencies
|
|
run: npm ci
|
|
|
|
- name: Run QUnit tests
|
|
run: npm run grunt qunit:compiled
|