mirror of
https://github.com/quine-global/hyper.git
synced 2026-01-13 04:28:41 -09:00
154 lines
4.3 KiB
YAML
154 lines
4.3 KiB
YAML
name: Node CI
|
|
on:
|
|
push:
|
|
branches:
|
|
workflow_dispatch:
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
|
|
concurrency:
|
|
group: ci-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
NODE_VERSION: 20.11.0
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
# CSC_LINK: ${{ secrets.MAC_CERT_P12_BASE64 }}
|
|
# CSC_KEY_PASSWORD: ${{ secrets.MAC_CERT_P12_PASSWORD }}
|
|
# WIN_CSC_LINK: ${{ secrets.WIN_CERT_P12_BASE64 }}
|
|
# WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CERT_P12_PASSWORD }}
|
|
# APPLE_ID: ${{ secrets.APPLE_ID }}
|
|
# APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
|
|
|
|
jobs:
|
|
build-ubuntu:
|
|
name: Build Ubuntu
|
|
runs-on: ubuntu-latest
|
|
concurrency:
|
|
group: build-ubuntu-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build
|
|
uses: ./.github/actions/build
|
|
env:
|
|
NODE_VERSION: ${{ env.NODE_VERSION }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
matrix-os: ubuntu-latest
|
|
matrix-name: ubuntu
|
|
upload-artifact: false
|
|
|
|
build-macos:
|
|
name: Build macOS
|
|
runs-on: macos-latest
|
|
concurrency:
|
|
group: build-macos-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build
|
|
uses: ./.github/actions/build
|
|
env:
|
|
NODE_VERSION: ${{ env.NODE_VERSION }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
matrix-os: macos-latest
|
|
matrix-name: macos
|
|
upload-artifact: false
|
|
|
|
build-windows:
|
|
name: Build Windows
|
|
runs-on: windows-latest
|
|
concurrency:
|
|
group: build-win-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build
|
|
uses: ./.github/actions/build
|
|
env:
|
|
NODE_VERSION: ${{ env.NODE_VERSION }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
matrix-os: windows-latest
|
|
matrix-name: win
|
|
upload-artifact: false
|
|
|
|
# ARM Linux:
|
|
|
|
build-linux-armv7l:
|
|
name: Build Linux ARMv7l
|
|
runs-on: ubuntu-latest
|
|
concurrency:
|
|
group: build-linux-armv7l-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up QEMU and binfmt
|
|
run: |
|
|
# Install qemu-user-static
|
|
sudo apt-get update
|
|
sudo apt-get install -y qemu-user-static binfmt-support python3-setuptools
|
|
|
|
# Install distutils for node-gyp
|
|
sudo apt-get install -y python3-distutils || sudo apt-get install -y python3-dev python-is-python3
|
|
|
|
|
|
# Download and install binfmt configurations
|
|
wget https://github.com/qemu/qemu/raw/master/scripts/qemu-binfmt-conf.sh
|
|
chmod +x qemu-binfmt-conf.sh
|
|
sudo ./qemu-binfmt-conf.sh --qemu-path /usr/bin --qemu-suffix -static --debian
|
|
|
|
# Import the binfmt configurations
|
|
sudo update-binfmts --import qemu-arm
|
|
sudo update-binfmts --import qemu-aarch64
|
|
|
|
# Verify they exist
|
|
ls -la /proc/sys/fs/binfmt_misc/qemu-arm* || true
|
|
|
|
- name: Build ARMv7l
|
|
uses: ./.github/actions/build-linux-arm
|
|
env:
|
|
NODE_VERSION: ${{ env.NODE_VERSION }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
matrix-name: armv7l
|
|
matrix-cpu: cortex-a8
|
|
matrix-image: raspios_lite:latest
|
|
upload-artifact: false
|
|
|
|
build-linux-arm64:
|
|
name: Build Linux ARM64
|
|
runs-on: ubuntu-latest
|
|
concurrency:
|
|
group: build-linux-arm64-${{ github.ref }}
|
|
cancel-in-progress: false
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Build ARM64
|
|
uses: ./.github/actions/build-linux-arm
|
|
env:
|
|
NODE_VERSION: ${{ env.NODE_VERSION }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
matrix-name: arm64
|
|
matrix-cpu: cortex-a53
|
|
matrix-image: raspios_lite_arm64:latest
|
|
upload-artifact: false
|