aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
authorTimmy Willison <timmywil@users.noreply.github.com>2024-03-29 09:13:46 -0400
committerGitHub <noreply@github.com>2024-03-29 09:13:46 -0400
commit91df20be6b488ac6cf4da291d7ee3aa5d6feac73 (patch)
tree56b5c4f8b96a8323e3a6ce9c02c3e84c85a9d6d5 /.github/workflows
parent802642c37323d5fc05bfa4cee90a900953f9a98d (diff)
downloadjquery-ui-91df20be6b488ac6cf4da291d7ee3aa5d6feac73.tar.gz
jquery-ui-91df20be6b488ac6cf4da291d7ee3aa5d6feac73.zip
Tests: replace grunt-contrib-qunit with jQuery test runner
- add filestash workflow Close gh-2221
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/filestash.yml51
-rw-r--r--.github/workflows/node.js.yml163
-rw-r--r--.github/workflows/test.yml63
3 files changed, 214 insertions, 63 deletions
diff --git a/.github/workflows/filestash.yml b/.github/workflows/filestash.yml
new file mode 100644
index 000000000..d5755e61b
--- /dev/null
+++ b/.github/workflows/filestash.yml
@@ -0,0 +1,51 @@
+name: Filestash
+
+on:
+ push:
+ branches:
+ - main
+
+permissions:
+ contents: read # to fetch code (actions/checkout)
+
+jobs:
+ update:
+ runs-on: ubuntu-latest
+ environment: filestash
+ env:
+ NODE_VERSION: 20.x
+ name: Update Filestash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Cache
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Build
+ run: npm run build
+
+ - name: Set up SSH
+ run: |
+ install --directory ~/.ssh --mode 700
+ base64 --decode <<< "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
+ chmod 600 ~/.ssh/id_ed25519
+ ssh-keyscan -t ed25519 -H "${{ secrets.FILESTASH_SERVER }}" >> ~/.ssh/known_hosts
+
+ - name: Upload to Filestash
+ run: |
+ rsync dist/jquery-ui.js filestash@"${{ secrets.FILESTASH_SERVER }}":ui/jquery-ui-git.js
+ rsync dist/jquery-ui.css filestash@"${{ secrets.FILESTASH_SERVER }}":ui/jquery-ui-git.css
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
new file mode 100644
index 000000000..221bb8b70
--- /dev/null
+++ b/.github/workflows/node.js.yml
@@ -0,0 +1,163 @@
+name: Node
+
+on:
+ pull_request:
+ push:
+ branches-ignore: "dependabot/**"
+ # Once a week every Monday
+ schedule:
+ - cron: "42 1 * * 1"
+
+permissions:
+ contents: read
+
+env:
+ NODE_VERSION: 20.x
+
+jobs:
+ build-and-test:
+ runs-on: ubuntu-latest
+ name: ${{ matrix.BROWSER }} - jQuery ${{ matrix.JQUERY }}
+ strategy:
+ fail-fast: false
+ matrix:
+ BROWSER: [chrome, firefox]
+ JQUERY:
+ - "git"
+ - "3.x-git"
+ - "3.7.1"
+ - "2.2.4"
+ - "1.12.4"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Cache
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
+
+ - name: Install npm dependencies
+ run: npm install
+
+ - name: Lint
+ run: npm run lint
+
+ - name: Build
+ run: npm run build
+
+ - name: Test
+ run: npm run test:unit -- -h -b ${{ matrix.BROWSER }} --jquery ${{ matrix.JQUERY }} --retries 3
+
+ edge:
+ runs-on: windows-latest
+ name: edge - jQuery ${{ matrix.JQUERY }}
+ strategy:
+ fail-fast: false
+ matrix:
+ JQUERY:
+ - "git"
+ - "3.x-git"
+ - "3.7.1"
+ - "2.2.4"
+ - "1.12.4"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Cache
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Build
+ run: npm run build
+
+ - name: Test
+ run: npm run test:unit -- -h -b edge --jquery ${{ matrix.JQUERY }} --retries 3
+
+ safari:
+ runs-on: macos-latest
+ name: safari - jQuery ${{ matrix.JQUERY }}
+ strategy:
+ fail-fast: false
+ matrix:
+ JQUERY:
+ - "git"
+ - "3.x-git"
+ - "3.7.1"
+ - "2.2.4"
+ - "1.12.4"
+ steps:
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Cache
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
+
+ - name: Install dependencies
+ run: npm install
+
+ - name: Build
+ run: npm run build
+
+ - name: Test
+ run: npm run test:unit -- -b safari --jquery ${{ matrix.JQUERY }} --retries 3
+
+ legacy-build:
+ runs-on: ubuntu-latest
+ name: Build on Node 10.x
+ env:
+ NODE_VERSION: 10.x
+ steps:
+ - name: Checkout
+ uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
+
+ - name: Use Node.js ${{ env.NODE_VERSION }}
+ uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ with:
+ node-version: ${{ env.NODE_VERSION }}
+
+ - name: Cache
+ uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
+ with:
+ path: ~/.npm
+ key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-${{ hashFiles('**/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-${{ env.NODE_VERSION }}-npm-lock-
+
+ - name: Install npm dependencies
+ run: npm install
+
+ - name: Build
+ run: npm run build
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index 0f958ac50..000000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-name: Grunt tests
-
-on: [push, pull_request]
-
-permissions:
- contents: read
-
-jobs:
- grunt:
- name: Grunt based tests with Node.js ${{ matrix.node-version }}
-
- runs-on: ubuntu-latest
- strategy:
- matrix:
- # Node.js 10 is required by jQuery infra
- node-version: [10.x, 18.x, 20.x]
-
- steps:
- - uses: actions/checkout@v4
-
- - uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
-
- - name: Get npm cache directory
- id: npm-cache-dir
- run: |
- echo "dir=\"$(npm config get cache)\"" >> $GITHUB_OUTPUT
-
- - name: Cache npm dependencies
- uses: actions/cache@v4
- with:
- path: ${{ steps.npm-cache-dir.outputs.dir }}
- key: ${{ runner.os }}-node-${{ matrix.node-version }}-npm-${{ hashFiles('**/package.json') }}
- restore-keys: |
- ${{ runner.os }}-node-${{ matrix.node-version }}-npm-
- ${{ runner.os }}-node-${{ matrix.node-version }}-
- ${{ runner.os }}-node-
- ${{ runner.os }}-
-
- - name: Install npm dependencies
- run: npm install
-
- # Keep these steps in sync with the default command tasks in our Gruntfile!
- - name: Run lint
- run: node_modules/.bin/grunt lint
-
- - name: Run RequireJS
- run: node_modules/.bin/grunt requirejs
-
- - name: Run Qunit
- run: node_modules/.bin/grunt test
-
- valid:
- name: Build & tests
-
- needs: grunt
-
- runs-on: ubuntu-latest
-
- steps:
- - name: Grunt based tests passed
- run: echo "✅"