From ff26ff6570d5a26281903474e24d57dbc3460b1f Mon Sep 17 00:00:00 2001 From: Tuan-Dat Tran Date: Mon, 23 Feb 2026 19:20:53 +0100 Subject: [PATCH] chore(ci): bump node version Signed-off-by: Tuan-Dat Tran --- .github/workflows/ci.yml | 121 +++++++++++++++++----------------- .github/workflows/deploy.yml | 19 +++--- .github/workflows/nightly.yml | 28 ++++---- .github/workflows/release.yml | 36 +++++----- .github/workflows/staging.yml | 28 ++++---- 5 files changed, 117 insertions(+), 115 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f6fed4..ab34b13 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,53 +14,53 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "26" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Validate current commit if: github.event_name == 'push' run: npx commitlint --from HEAD~1 --to HEAD --verbose - + - name: Validate PR commits if: github.event_name == 'pull_request' run: npx commitlint --from ${{ github.event.pull_request.base.sha }} --to ${{ github.event.pull_request.head.sha }} --verbose frontend: runs-on: ubuntu-latest - + strategy: matrix: - node-version: [18.x, 20.x] - + node-version: [24.x, 25.x, 26.x] + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - cache: 'npm' - + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Lint run: npm run lint - + - name: Unit Tests run: npm run test:run - + - name: Build run: npm run build - + - name: Upload build artifacts uses: actions/upload-artifact@v4 with: @@ -70,20 +70,20 @@ jobs: backend: runs-on: ubuntu-latest - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' - + node-version: "20.x" + - name: Install dependencies working-directory: ./backend run: npm ci - + - name: Test working-directory: ./backend run: npm test @@ -91,46 +91,46 @@ jobs: integration: runs-on: ubuntu-latest needs: [frontend, backend, commitlint] - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' - cache: 'npm' - + node-version: "20.x" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Run Integration Tests run: npm run test:integration e2e: runs-on: ubuntu-latest needs: [frontend, backend, commitlint] - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' - cache: 'npm' - + node-version: "20.x" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Install Playwright browsers run: npx playwright install --with-deps chromium - + - name: Run E2E Tests run: npm run test:e2e - + - name: Upload Playwright report uses: actions/upload-artifact@v4 if: always() @@ -142,23 +142,23 @@ jobs: regression: runs-on: ubuntu-latest needs: [frontend, backend, commitlint] - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' - cache: 'npm' - + node-version: "20.x" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Run Regression Tests run: npm run test:regression - + - name: Upload snapshot diffs uses: actions/upload-artifact@v4 if: failure() @@ -170,23 +170,23 @@ jobs: lighthouse: runs-on: ubuntu-latest needs: [frontend] - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20.x' - cache: 'npm' - + node-version: "20.x" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Build run: npm run build - + - name: Run Lighthouse CI run: npm run test:lighthouse continue-on-error: true @@ -194,35 +194,36 @@ jobs: quality: name: Quality Gates runs-on: ubuntu-latest - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "20" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Run tests with coverage run: npm run test:coverage - + - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false - + - name: Build run: npm run build - + - name: Check bundle size run: npx bundlesize - + - name: Security audit run: npm audit --audit-level=moderate - continue-on-error: true \ No newline at end of file + continue-on-error: true + diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 62d18f0..2d484e6 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -20,28 +20,28 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "26" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Build run: npm run build env: BASE_URL: /${{ github.event.repository.name }}/ - + - name: Setup Pages uses: actions/configure-pages@v4 - + - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: 'dist' + path: "dist" deploy: environment: @@ -52,4 +52,5 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 + diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 14889c5..e0131ec 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2,7 +2,7 @@ name: Nightly Build on: schedule: - - cron: '0 2 * * *' + - cron: "0 2 * * *" workflow_dispatch: permissions: @@ -14,52 +14,52 @@ jobs: name: Build Nightly Image runs-on: ubuntu-latest environment: nightly - + steps: - name: Checkout uses: actions/checkout@v4 with: ref: master - + - name: Get date id: date run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "26" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Install backend dependencies working-directory: ./backend run: npm ci - + - name: Build run: npm run build - + - name: Set up QEMU uses: docker/setup-qemu-action@v3 - + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - + - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - + - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - + - name: Build and push uses: docker/build-push-action@v5 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4fb483b..21df3c5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,40 +15,40 @@ jobs: name: Release runs-on: ubuntu-latest if: "!contains(github.event.head_commit.message, '[skip ci]')" - + steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "26" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Install backend dependencies working-directory: ./backend run: npm ci - + - name: Lint run: npm run lint - + - name: Run tests run: npm run test:run - + - name: Run backend tests working-directory: ./backend run: npm test - + - name: Build run: npm run build - + - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -59,39 +59,39 @@ jobs: runs-on: ubuntu-latest needs: release if: needs.release.result == 'success' - + steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - + - name: Get version id: version run: | VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "latest") echo "version=${VERSION#v}" >> $GITHUB_OUTPUT echo "tag=${VERSION}" >> $GITHUB_OUTPUT - + - name: Set up QEMU uses: docker/setup-qemu-action@v3 - + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - + - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - + - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - + - name: Build and push uses: docker/build-push-action@v5 with: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 2531e28..7fe81e7 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -14,52 +14,52 @@ jobs: name: Build & Deploy to Staging runs-on: ubuntu-latest environment: staging - + steps: - name: Checkout uses: actions/checkout@v4 - + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' - cache: 'npm' - + node-version: "26" + cache: "npm" + - name: Install dependencies run: npm ci - + - name: Install backend dependencies working-directory: ./backend run: npm ci - + - name: Lint run: npm run lint - + - name: Run tests run: npm run test:run - + - name: Build run: npm run build - + - name: Set up QEMU uses: docker/setup-qemu-action@v3 - + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - + - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - + - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - + - name: Build and push uses: docker/build-push-action@v5 with: