Skip to content

fix macos build error #91

fix macos build error

fix macos build error #91

Workflow file for this run

name: Publish
on:
push:
branches:
- main
jobs:
build-win:
name: Build for Windows
runs-on: windows-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install app dependencies
run: npm ci
- name: Get package name and version
run: |
test -n $(node -p -e "require('./package.json').name") &&
test -n $(node -p -e "require('./package.json').version") &&
echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:win
- name: Compress
run: powershell Compress-Archive build\streamyx-win-x64.exe streamyx-win-x64.zip
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: win
path: ./streamyx-win-x64.zip
build-macos:
name: Build for macOS
runs-on: macos-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 18
# https://github.com/nodejs/node-gyp/issues/2869
- name: Fix distutils issue for node-gyp
run: python3 -m pip install setuptools
- name: Install app dependencies
run: npm ci
- name: Get package name and version
run: |
test -n $(node -p -e "require('./package.json').name") &&
test -n $(node -p -e "require('./package.json').version") &&
echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:macos
- name: Compress
run: zip -9 -j ${{ env.PACKAGE_NAME }}-macos-x64.zip ./build/${{ env.PACKAGE_NAME }}-macos-x64
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: macos
path: ./${{ env.PACKAGE_NAME }}-macos-x64.zip
build-linux:
name: Build for Linux
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install app dependencies
run: npm ci
- name: Get package name and version
run: |
test -n $(node -p -e "require('./package.json').name") &&
test -n $(node -p -e "require('./package.json').version") &&
echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:linux
- name: Compress
run: zip -9 -j ${{ env.PACKAGE_NAME }}-linux-x64.zip ./build/${{ env.PACKAGE_NAME }}-linux-x64
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: linux
path: ./${{ env.PACKAGE_NAME }}-linux-x64.zip
upload:
name: Upload builds to Release
runs-on: ubuntu-latest
needs: [build-win, build-macos, build-linux]
steps:
- name: Clone repository
uses: actions/checkout@v3
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v3
with:
node-version: 18
- name: Download Windows build
uses: actions/download-artifact@v3
with:
name: win
- name: Download macOS build artifact
uses: actions/download-artifact@v3
with:
name: macos
- name: Download Linux build
uses: actions/download-artifact@v3
with:
name: linux
- name: Get package name and version
run: |
test -n $(node -p -e "require('./package.json').name") &&
test -n $(node -p -e "require('./package.json').version") &&
echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: '${{ env.PACKAGE_NAME }}-win-x64.zip,
${{ env.PACKAGE_NAME }}-macos-x64.zip,
${{ env.PACKAGE_NAME }}-linux-x64.zip'
tag: 'v${{ env.PACKAGE_VERSION }}'
token: ${{ secrets.GITHUB_TOKEN }}
draft: true