aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/node.js.yml
diff options
context:
space:
mode:
authorTimmy Willison <timmywil@users.noreply.github.com>2023-09-20 18:18:42 -0400
committerGitHub <noreply@github.com>2023-09-20 18:18:42 -0400
commitec8802bafefaebd99e4bfc0956fb409d9054d871 (patch)
tree19fb82ea61bae624b35bd31bee8ba1e6bd080fa0 /.github/workflows/node.js.yml
parent6fe88690a336a883ea310da76762e5a456dc487a (diff)
downloadjquery-ec8802bafefaebd99e4bfc0956fb409d9054d871.tar.gz
jquery-ec8802bafefaebd99e4bfc0956fb409d9054d871.zip
Build: migrate most grunt tasks off of grunt (3.x)
Close gh-5330 - lint - npmcopy - build, minify, and process for distribution. - new custom build command using yargs - compare size of minified/gzip built files - pretest scripts, including qunit-fixture, babel transpilation, and npmcopy - node smoke tests - promises aplus tests - new watch task using nodemon, which runs `npm run build:all` on `src` changes. Also: - upgraded husky and added the new lint command - updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new - Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556 - committed package-lock.json - updated all test scripts to use the new build - added an express test server that uses middleware-mockserver this can be used to run tests without karma - build-all-variants is now build:all - run pretest script in jenkins --------- Co-authored-by: Michał Gołębiowski-Owczarek <m.goleb@gmail.com>
Diffstat (limited to '.github/workflows/node.js.yml')
-rw-r--r--.github/workflows/node.js.yml67
1 files changed, 37 insertions, 30 deletions
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
index 2baaea6e7..17167b700 100644
--- a/.github/workflows/node.js.yml
+++ b/.github/workflows/node.js.yml
@@ -40,40 +40,47 @@ jobs:
NODE_VERSION: "18.x"
NPM_SCRIPT: "test:browser"
BROWSERS: "FirefoxHeadless"
+
steps:
- - name: Checkout
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ - name: Checkout
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+
+ - name: Cache
+ uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-
+
+ - name: Use Node.js ${{ matrix.NODE_VERSION }}
+ uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
+ with:
+ node-version: ${{ matrix.NODE_VERSION }}
- - name: Cache
- uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
- with:
- path: ~/.npm
- key: ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
- restore-keys: |
- ${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-npm-lock-
+ - name: Install firefox ESR
+ run: |
+ export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-esr-latest&lang=en-US&os=linux64'
+ wget --no-verbose $FIREFOX_SOURCE_URL -O - | tar -jx -C ${HOME}
+ if: contains(matrix.NAME, 'Firefox ESR')
- - name: Use Node.js ${{ matrix.NODE_VERSION }}
- uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
- with:
- node-version: ${{ matrix.NODE_VERSION }}
+ - name: Install dependencies
+ run: npm install
- - name: Install firefox ESR
- run: |
- export FIREFOX_SOURCE_URL='https://download.mozilla.org/?product=firefox-esr-latest&lang=en-US&os=linux64'
- wget --no-verbose $FIREFOX_SOURCE_URL -O - | tar -jx -C ${HOME}
- if: "contains(matrix.NAME, 'Firefox ESR')"
+ - name: Install Playwright dependencies
+ run: npx playwright-webkit install-deps
+ if: matrix.NPM_SCRIPT == 'test:browser' && contains(matrix.BROWSERS, 'WebkitHeadless')
- - name: Install dependencies
- run: |
- npm install
+ - name: Lint code
+ run: npm run build && npm run lint
+ if: matrix.NODE_VERSION == '18.x'
- - name: Install Playwright dependencies
- run: npx playwright-webkit install-deps
- if: "matrix.NPM_SCRIPT == 'test:browser' && contains(matrix.BROWSERS, 'WebkitHeadless')"
+ - name: Prepare tests
+ run: npm run pretest
- - name: Run tests
- env:
- BROWSERS: ${{ matrix.BROWSERS }}
- run: |
- export PATH=${HOME}/firefox:$PATH
- npm run ${{ matrix.NPM_SCRIPT }}
+ - name: Run tests
+ env:
+ BROWSERS: ${{ matrix.BROWSERS }}
+ run: |
+ export PATH=${HOME}/firefox:$PATH
+ npm run ${{ matrix.NPM_SCRIPT }}