diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/filestash.yml | 51 | ||||
-rw-r--r-- | .github/workflows/node.js.yml | 163 | ||||
-rw-r--r-- | .github/workflows/test.yml | 63 |
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 "✅" |