Update GitHub actions/setup-node and add optionalDependencies handling (https://github.com/woocommerce/woocommerce-blocks/pull/6032)

* Update actions/setup-node to v2 and to use ,nvmrc file

* Fix order of actions for Bundle Size workflow

* Use actions/setup-node cache instead of actions/cache

+ ensure we always install with npm ci

* restore linting setup job to cache npm

* Don't install ndb in CI

Move ndb package to optionalDependencies and update
the CI workflows to not install optional dependencies

* Update actions/setup-node to v3

* Update actions/checkout to v3

* Update download and upload-artifact actions to v3

* Update actions/stale to v5
This commit is contained in:
Tomasz Tunik 2022-03-23 08:41:43 +01:00 committed by GitHub
parent 937bab7688
commit e1ae6b4552
14 changed files with 549 additions and 640 deletions

View File

@ -16,7 +16,7 @@ jobs:
name: Add Milestone
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Latest milestone
uses: woocommerce/automations@v1
with:

View File

@ -7,10 +7,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v2-beta
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- uses: preactjs/compressed-size-action@v2
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'

View File

@ -7,30 +7,20 @@ jobs:
build-trunk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
ref: trunk
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: npm install and build
run: |
npm ci
npm ci --no-optional
npm run build:check-assets
- name: Upload Artifact
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: assets-list
path: ./build/assets.json
@ -39,28 +29,18 @@ jobs:
needs: [build-trunk]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: npm install
run: |
npm ci
npm ci --no-optional
npm run build:check-assets
- name: Download assets (trunk)
uses: actions/download-artifact@v2
uses: actions/download-artifact@v3
with:
name: assets-list
path: assets-list

View File

@ -9,7 +9,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v3
- uses: actions/stale@v5
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 60

View File

@ -3,7 +3,7 @@
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
name: "CodeQL"
name: 'CodeQL'
on:
push:
@ -30,7 +30,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.

View File

@ -6,22 +6,20 @@ on:
branches: [trunk]
jobs:
# cache node and modules
Setup:
name: Setup for Jobs
name: Setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Install Node Dependencies
run: npm install
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install Node dependencies
run: npm ci --no-optional
JSLintingCheck:
name: Lint JavaScript
@ -29,27 +27,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Install Node Dependencies
run: npm install
- name: Save Code Linting Report JSON
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install Node dependencies
run: npm ci --no-optional
- name: Save code linting report JSON
run: npm run lint:js:report
# Continue to the next step even if this fails
continue-on-error: true
- name: Upload ESLint report
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: eslint_report.json
path: eslint_report.json
- name: Annotate Code Linting Results
- name: Annotate code linting results
uses: ataylorme/eslint-annotate-action@1.2.0
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
@ -61,16 +56,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
path: node_modules
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Install Node Dependencies
run: npm install
node-version-file: '.nvmrc'
cache: 'npm'
- name: Install Node dependencies
run: npm ci --no-optional
- name: Lint CSS
run: npm run lint:css

View File

@ -26,7 +26,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Get Composer cache directory
id: composer-cache

View File

@ -10,28 +10,15 @@ jobs:
name: JavaScript E2E Tests (WP latest with Gutenberg plugin)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: Npm install and build
run: |
npm ci
npm ci --no-optional
FORCE_REDUCED_MOTION=true npm run build:e2e-test
- name: blocks.ini setup
@ -72,7 +59,7 @@ jobs:
- name: Upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: e2e-with-gutenberg-test-report
path: reports/e2e
@ -81,28 +68,15 @@ jobs:
name: JavaScript E2E Tests (latest)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: Npm install and build
run: |
npm ci
npm ci --no-optional
FORCE_REDUCED_MOTION=true npm run build:e2e-test
- name: blocks.ini setup
@ -140,7 +114,7 @@ jobs:
- name: Upload artifacts on failure
if: ${{ failure() }}
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: e2e-test-report
path: reports/e2e

View File

@ -9,7 +9,7 @@ jobs:
project-management-automation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
with:
ref: trunk
- uses: woocommerce/automations@v1

View File

@ -16,7 +16,7 @@ jobs:
status: starting
if: ${{ always() }}
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: Create changeset for pull request
run: |
git config user.name github-actions

View File

@ -10,28 +10,15 @@ jobs:
runs-on: ubuntu-latest
name: Setup
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: Npm install and build
run: |
npm ci
npm ci --no-optional
FORCE_REDUCED_MOTION=true npm run build:e2e-test
- name: Get Composer Cache Directory
@ -58,29 +45,19 @@ jobs:
PHPUnitTests:
name: PHP Unit Tests
needs: Setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: Npm install #build is not needed
run: |
npm ci
npm ci --no-optional
- name: blocks.ini setup
run: |
echo 'woocommerce_blocks_phase = 3' > blocks.ini
@ -100,32 +77,18 @@ jobs:
JSUnitTests:
name: JS Unit Tests
needs: Setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Cache node modules
uses: actions/cache@v2
env:
cache-name: cache-node-modules
- uses: actions/checkout@v3
- name: Setup node version and npm cache
uses: actions/setup-node@v3
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
${{ runner.OS }}-build-${{ secrets.CACHE_VERSION }}-
- name: Use Node.js 16.13.2
uses: actions/setup-node@v1
with:
node-version: 16.13.2
node-version-file: '.nvmrc'
cache: 'npm'
- name: Npm install and build
run: |
npm ci
npm ci --no-optional
FORCE_REDUCED_MOTION=true npm run build:e2e-test
- name: blocks.ini setup

View File

@ -14,7 +14,7 @@ jobs:
status: starting
if: ${{ always() }}
- name: Checkout code
uses: actions/checkout@v2
uses: actions/checkout@v3
- name: WordPress Plugin Deploy
id: deploy
uses: 10up/action-wordpress-plugin-deploy@stable

File diff suppressed because it is too large Load Diff

View File

@ -181,7 +181,6 @@
"markdown-it": "12.3.2",
"merge-config": "2.0.0",
"mini-css-extract-plugin": "1.3.6",
"ndb": "1.1.5",
"patch-package": "6.4.7",
"postcss": "8.2.13",
"postcss-loader": "4.2.0",
@ -234,6 +233,9 @@
"react": "^17.0.0",
"react-dom": "^17.0.0"
},
"optionalDependencies": {
"ndb": "1.1.5"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"