mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
On TravisCI, old branches still receiving security updates were tested on a regular basis. This ensured tests continued to pass as time passed even if updates were not made to these branches. On GitHub Actions, there is no interface to configure this (TravisCI had a UI), but there is a `schedule` event that can trigger workflow runs on cron that can be used to accomplish the same thing. This introduces a workflow file that runs twice a month (on the 1st and 15th) to verify the tests within older branches. Because the `schedule` event only runs within the primary branch, the appropriate workflows in each old branch will be triggered manually through the `workflow_dispatch` trigger using the GitHub REST API. `workflow_dispatch` will need to be added to all workflows in all old branches in order for the event to dispatch successfully. Fixes #52653. git-svn-id: https://develop.svn.wordpress.org/trunk@50590 602fd350-edb4-49c9-b593-d223f7449a82
92 lines
2.8 KiB
YAML
92 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:
|
|
|
|
jobs:
|
|
# Runs the QUnit tests for WordPress.
|
|
#
|
|
# Performs the following steps:
|
|
# - Cancels all previous workflow runs for pull requests that have not completed.
|
|
# - 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: Cancel previous runs of this workflow (pull requests only)
|
|
if: ${{ github.event_name == 'pull_request' }}
|
|
uses: styfle/cancel-workflow-action@3d86a7cc43670094ac248017207be0295edbc31d # v0.8.0
|
|
|
|
- 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
|