Update build workflow for multi-OS support

Refactor GitHub Actions workflow to support multiple OS builds and streamline binary updates.
This commit is contained in:
uNetworkingAB
2025-10-21 06:38:03 +02:00
committed by GitHub
parent f07b1fa36b
commit cf5d8ba96b

View File

@@ -5,53 +5,45 @@ on:
branches: [ master ]
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: ilammy/msvc-dev-cmd@v1
- uses: ilammy/setup-nasm@v1.2.1
- name: Update binaries
run: |
$ErrorActionPreference = 'SilentlyContinue'
git clone --recursive https://github.com/uNetworking/uWebSockets.js.git
cd uWebSockets.js
nmake
git fetch origin binaries:binaries
git checkout binaries
xcopy /Y dist\*.node .
git status
git config --global user.email "alexhultman@gmail.com"
git config --global user.name "Alex Hultman"
git commit -a -m "[GitHub Actions] Updated windows-latest binaries"
git push "https://unetworkingab:${{ secrets.SECRET }}@github.com/uNetworking/uWebSockets.js" binaries
git checkout master -- tests/smoke.js
npm install ws
node tests/smoke.js
build-unix:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-15, ubuntu-24.04, ubuntu-24.04-arm]
os: [windows-latest, macos-15, ubuntu-24.04, ubuntu-24.04-arm]
steps:
- uses: actions/setup-node@v4
- name: Set up environment
uses: actions/setup-node@v4
with:
node-version: 20
- name: Update binaries
- name: Install Windows tools
if: matrix.os == 'windows-latest'
uses: ilammy/msvc-dev-cmd@v1
- name: Install NASM for Windows
if: matrix.os == 'windows-latest'
uses: ilammy/setup-nasm@v1.2.1
- name: Install Unix dependencies
if: matrix.os != 'windows-latest'
run: |
uname -a
sudo apt update || true
brew install go || true
sudo apt install -y g++-aarch64-linux-gnu || true
- name: Build and update binaries
shell: bash
run: |
git clone --recursive https://github.com/uNetworking/uWebSockets.js.git
cd uWebSockets.js
make
if [ "${{ matrix.os }}" == "windows-latest" ]; then
nmake
else
make
fi
cp dist/*.node . || true
cp dist/*.js . || true
git checkout master docs/index.d.ts && mv docs/index.d.ts . || true
git fetch origin binaries:binaries
git checkout binaries
cp dist/*.node .
cp dist/*.js .
git status
git rev-parse master > source_commit
git checkout master docs/index.d.ts && mv docs/index.d.ts .
git config --global user.email "alexhultman@gmail.com"
git config --global user.name "Alex Hultman"
git commit -a -m "[GitHub Actions] Updated ${{ matrix.os }} binaries" || true