diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml index 82e83bbd538..fec88425eac 100644 --- a/.github/workflows/deploy.yaml +++ b/.github/workflows/deploy.yaml @@ -36,12 +36,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages @@ -59,12 +59,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages @@ -78,7 +78,7 @@ jobs: npx gulp buildPrepare --queue-imports - name: Storing build artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: build-setup path: artifacts/setup.tar.gz @@ -110,19 +110,19 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages run: npm ci - name: Setting up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: '3.9' @@ -132,7 +132,7 @@ jobs: pip install grow --upgrade-strategy eager - name: Fetching build artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: name: build-setup path: artifacts @@ -146,7 +146,7 @@ jobs: npx gulp buildPages --locales ${{ matrix.language }} - name: Storing build artifacts - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: pages-${{ github.run_id }}-${{ matrix.language }} path: artifacts @@ -160,19 +160,19 @@ jobs: NETLIFY_DEPLOY_TOKEN: ${{ secrets.NETLIFY_DEPLOY_TOKEN }} steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages run: npm ci - name: Fetching build artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v7 with: path: artifacts diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 2aa2737b9de..b69e0009bea 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -13,12 +13,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages diff --git a/.github/workflows/sync-doc.yaml b/.github/workflows/sync-doc.yaml index 253a41797a3..317c013df2c 100644 --- a/.github/workflows/sync-doc.yaml +++ b/.github/workflows/sync-doc.yaml @@ -17,14 +17,14 @@ jobs: APP_ENV: production steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 18 + node-version: 24 cache: npm - name: Install dependencies @@ -38,7 +38,7 @@ jobs: npx gulp buildPrepare - name: Create Pull Request if changes exist - uses: peter-evans/create-pull-request@v5 + uses: peter-evans/create-pull-request@v8 with: token: ${{ secrets.GITHUB_TOKEN }} commit-message: 'Automatic documentation sync [skip ci]' diff --git a/.github/workflows/test-platform.yaml b/.github/workflows/test-platform.yaml index eb48a5e332b..f5854b6f0de 100644 --- a/.github/workflows/test-platform.yaml +++ b/.github/workflows/test-platform.yaml @@ -13,12 +13,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages diff --git a/.github/workflows/test-playground.yaml b/.github/workflows/test-playground.yaml index 2aa414d3320..87bb2611db3 100644 --- a/.github/workflows/test-playground.yaml +++ b/.github/workflows/test-playground.yaml @@ -13,12 +13,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Cloning repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setting up Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: - node-version: 22 + node-version: 24 cache: npm - name: Installing Node.js packages diff --git a/Dockerfile b/Dockerfile index 0529ee5e0de..392f472749f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22-alpine +FROM node:24-alpine # Create app directory WORKDIR /usr/src/app diff --git a/package.json b/package.json index 77ad6581363..84471c0141d 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "The AMP Project website.", "repository": "git@github.com:ampproject/docs.git", "engines": { - "node": "22.x" + "node": "24.x" }, "private": true, "scripts": { @@ -61,37 +61,37 @@ "@ampproject/toolbox-cache-list": "2.10.1", "@ampproject/toolbox-cors": "2.10.1", "@ampproject/toolbox-optimizer": "2.10.1", - "@google-cloud/datastore": "8.7.0", + "@google-cloud/datastore": "10.1.0", "@iarna/toml": "2.2.5", "busboy": "1.6.0", "casual": "1.6.2", "cheerio": "1.0.0-rc.12", "client-sessions": "0.8.0", - "cookie": "0.6.0", + "cookie": "1.1.1", "cookie-parser": "1.4.6", "cors": "2.8.5", "crypto-browserify": "3.12.0", "dropzone": "5.9.3", - "express": "4.19.2", + "express": "5.2.1", "express-formidable": "1.2.0", - "gcp-metadata": "6.1.0", - "google-spreadsheet": "4.1.2", + "gcp-metadata": "8.1.2", + "google-spreadsheet": "5.2.0", "gulp-file": "0.4.0", - "helmet-csp": "3.4.0", + "helmet-csp": "4.0.0", "http-proxy": "1.18.1", "ioredis": "5.4.1", - "joi": "17.13.3", + "joi": "18.0.2", "js-yaml": "4.1.0", "json-tree-view": "0.4.12", - "linkifyjs": "2.1.9", - "lru-cache": "6.0.0", + "linkifyjs": "4.3.2", + "lru-cache": "11.2.6", "middy": "0.36.0", "module-alias": "2.2.3", "mri": "1.2.0", - "multer": "1.4.4-lts.1", - "node-fetch": "2.7.0", + "multer": "2.0.2", + "node-fetch": "3.3.2", "nunjucks": "3.2.4", - "p-queue": "6.6.2", + "p-queue": "9.1.0", "postcss": "8.4.40", "postcss-css-variables": "0.19.0", "randomstring": "1.3.0", @@ -100,7 +100,7 @@ "signale": "1.4.0", "stream-browserify": "3.0.0", "util": "0.12.5", - "uuid": "9.0.1", + "uuid": "13.0.0", "vinyl": "3.0.0", "web-push": "3.6.7", "ws": "8.18.0" @@ -117,32 +117,32 @@ "@babel/plugin-transform-runtime": "7.24.7", "@babel/preset-env": "7.25.3", "@babel/runtime": "7.25.0", - "@rollup/plugin-commonjs": "25.0.8", - "@rollup/plugin-node-resolve": "15.2.3", - "@rollup/plugin-replace": "5.0.7", + "@rollup/plugin-commonjs": "29.0.0", + "@rollup/plugin-node-resolve": "16.0.3", + "@rollup/plugin-replace": "6.0.3", "absolutify": "0.1.0", "amphtml-validator": "1.0.38", "ansi-colors": "4.1.3", - "archiver": "6.0.2", - "babel-loader": "9.1.3", + "archiver": "7.0.1", + "babel-loader": "10.0.0", "clean-css": "5.3.3", "clean-webpack-plugin": "4.0.0", - "codemirror": "5.65.17", - "copy-webpack-plugin": "12.0.2", - "css-loader": "6.11.0", - "css-minimizer-webpack-plugin": "6.0.0", - "del": "6.1.1", - "eslint": "8.57.0", + "codemirror": "6.0.2", + "copy-webpack-plugin": "13.0.1", + "css-loader": "7.1.4", + "css-minimizer-webpack-plugin": "7.0.4", + "del": "8.0.1", + "eslint": "10.0.0", "eslint-config-google": "0.14.0", - "eslint-config-prettier": "9.1.0", + "eslint-config-prettier": "10.1.8", "eslint-plugin-prettier": "5.2.1", - "fetch-mock": "9.11.0", + "fetch-mock": "12.6.0", "file-loader": "6.2.0", - "filemanager-webpack-plugin": "8.0.0", - "gulp": "4.0.2", + "filemanager-webpack-plugin": "9.0.1", + "gulp": "5.0.1", "gulp-amphtml-validator": "1.0.8", "gulp-once": "2.1.1", - "gulp-sass": "5.1.0", + "gulp-sass": "6.0.1", "handlebars": "4.7.8", "handlebars-loader": "1.7.3", "highlight.js": "11.10.0", @@ -150,37 +150,37 @@ "html-loader": "5.1.0", "html-webpack-inline-source-plugin": "1.0.0-beta.2", "html-webpack-plugin": "5.6.0", - "husky": "7.0.4", - "jasmine": "5.2.0", - "jest": "29.7.0", - "jest-environment-jsdom": "29.7.0", - "jest-puppeteer": "10.0.1", + "husky": "9.1.7", + "jasmine": "6.0.0", + "jest": "30.2.0", + "jest-environment-jsdom": "30.2.0", + "jest-puppeteer": "11.0.0", "js-base64": "3.7.7", "js-beautify": "1.15.1", "keymaster": "1.6.2", - "marked": "2.1.3", + "marked": "17.0.2", "mini-css-extract-plugin": "2.9.0", "mini-svg-data-uri": "1.4.4", - "netlify-cli": "17.33.5", - "npm-run-all2": "6.2.2", + "netlify-cli": "23.15.1", + "npm-run-all2": "8.0.4", "octonode": "0.10.2", "preload-webpack-plugin": "3.0.0-beta.4", "prettier": "3.3.3", "quoted-printable": "1.0.1", "recursive-search": "1.0.1", "sass": "1.77.8", - "sass-loader": "14.2.1", + "sass-loader": "16.0.7", "snarkdown": "2.0.0", "striptags": "3.2.0", - "supertest": "6.3.4", - "svg-spritemap-webpack-plugin": "4.5.1", + "supertest": "7.2.2", + "svg-spritemap-webpack-plugin": "5.1.0", "through2": "4.0.2", "url-loader": "4.1.1", "url-search-params": "1.1.0", "wade": "0.3.3", "webpack": "5.93.0", - "webpack-build-notifier": "2.3.0", - "webpack-cli": "5.1.4", + "webpack-build-notifier": "3.1.0", + "webpack-cli": "6.0.1", "webpack-dev-server": "5.0.4", "write": "2.0.0" },