dsi-icl/optimise

View on GitHub
.github/workflows/nodejs.yml

Summary

Maintainability
Test Coverage
name: Node CI

on: [push]

jobs:
  build:
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        os: [windows-latest]
        node: ["22"]

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Derive appropriate SHAs for base and head for `nx affected` commands
        uses: nrwl/nx-set-shas@v4
        with:
          main-branch-name: master
          error-on-no-successful-workflow: true

      - run: |
          echo "Nx base: ${{ env.NX_BASE }}"
          echo "Git head: ${{ env.NX_HEAD }}"

      - name: Using Node.js ${{ matrix.node }}
        uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
          cache: yarn

      - name: Disable TCP/UDP Offloading
        shell: bash
        run: |
          if [ "$RUNNER_OS" == "Linux" ]; then
            sudo ethtool -K eth0 tx off rx off
            exit 0
          elif [ "$RUNNER_OS" == "macOS" ]; then
            sudo sysctl -w net.link.generic.system.hwcksum_tx=0
            sudo sysctl -w net.link.generic.system.hwcksum_rx=0
            exit 0
          else
            echo "$RUNNER_OS not supported"
            exit 0
          fi

      - name: Installing dependencies
        run: |
          yarn install --network-timeout 1000000 --forzen-lockfile

      - name: Checking for lint
        run: |
          yarn run nx affected --target=lint --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --parallel=1

      - name: Building packages
        run: |
          yarn run build

      - name: Running unit tests
        run: |
          yarn run nx affected --target=test --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --parallel=1
        env:
          CI: true

      - name: Bundling Electron
        run: |
          yarn run electron