# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: win-arm on: push: branches: [ build, test, build-only, win-arm ] jobs: build: runs-on: windows-11-arm environment: build if: ${{ !contains(github.event.head_commit.message, '[skip build]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[skip win]') && !contains(github.event.head_commit.message, '[skip win-arm]') }} steps: - uses: actions/checkout@v4 - name: Use Node.js 24.x uses: actions/setup-node@v4 with: node-version: 24.x - uses: actions/setup-python@v5 with: python-version: '3.12' - run: npm config set legacy-peer-deps true - run: npm install -g node-gyp # before_install: # - run: npm install --global --production windows-build-tools --vs2015 - run: npm install -g yarn - run: npm un node-pty serialport - run: npm i - run: npm i -S -E node-pty@1.1.0-beta14 - run: npm i -S -E serialport@13.0.0 - name: Install R2 dependencies if needed if: ${{ contains(github.event.head_commit.message, '[r2]') }} run: npm i -D @aws-sdk/client-s3 # script: - run: npm run b - name: Run pb run: npm run pb # check work/app/node_modules size in windows arm - name: Check node_modules size shell: powershell run: | $size = (Get-ChildItem -Path "work/app/node_modules" -Recurse | Measure-Object -Property Length -Sum).Sum $sizeInMB = [math]::Round($size / 1MB, 2) $sizeInGB = [math]::Round($size / 1GB, 2) Write-Host "work/app/node_modules size: $sizeInMB MB ($sizeInGB GB)" - name: build if: ${{ !contains(github.event.head_commit.message, 'skip build') }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUILD_NUMBER: ${{ secrets.BUILD_NUMBER }} WORKFLOW_NAME: ${{ github.workflow }} CF_R2_ACCOUNT_ID: ${{ secrets.CF_R2_ACCOUNT_ID }} CF_R2_BUCKET: ${{ secrets.CF_R2_BUCKET }} CF_R2_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }} CF_R2_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_SECRET_ACCESS_KEY }} run: node build/bin/build-win-arm