Skip to content

fix: wait for build macos x64 before upload #247

fix: wait for build macos x64 before upload

fix: wait for build macos x64 before upload #247

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@v4
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: git config --global url."https://${{ secrets.CONTROL_REPO_TOKEN }}@github.com/".insteadOf ssh://[email protected]/
- 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 APP_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo APP_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:win
- name: Test
run: npm run test
- name: Compress
run: powershell Compress-Archive build\win\streamyx.exe streamyx-x64-win.zip
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: win-x64
path: ./streamyx-x64-win.zip
build-macos:
name: Build for macOS
runs-on: macos-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: git config --global url."https://${{ secrets.CONTROL_REPO_TOKEN }}@github.com/".insteadOf ssh://[email protected]/
# https://github.com/nodejs/node-gyp/issues/2869
# https://github.com/actions/runner-images/issues/8615#issuecomment-1773563573
- name: Fix distutils issue for node-gyp
run: python3 -m pip install setuptools --break-system-packages
- name: Install app dependencies
run: npm ci --verbose
- 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 APP_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo APP_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:mac:arm
- name: Test
run: npm run test
- name: Compress
run: zip -9 -j ${{ env.APP_NAME }}-arm64-mac.zip ./build/mac-arm/${{ env.APP_NAME }}
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: mac-arm64
path: ./${{ env.APP_NAME }}-arm64-mac.zip
build-macos-x64:
name: Build for macOS x64
runs-on: macos-latest-large
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: git config --global url."https://${{ secrets.CONTROL_REPO_TOKEN }}@github.com/".insteadOf ssh://[email protected]/
# https://github.com/nodejs/node-gyp/issues/2869
# https://github.com/actions/runner-images/issues/8615#issuecomment-1773563573
- name: Fix distutils issue for node-gyp
run: python3 -m pip install setuptools --break-system-packages
- 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 APP_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo APP_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:mac
- name: Test
run: npm run test
- name: Compress
run: zip -9 -j ${{ env.APP_NAME }}-x64-mac.zip ./build/mac/${{ env.APP_NAME }}
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: mac-x64
path: ./${{ env.APP_NAME }}-x64-mac.zip
build-linux:
name: Build for Linux
runs-on: ubuntu-latest
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: git config --global url."https://${{ secrets.CONTROL_REPO_TOKEN }}@github.com/".insteadOf ssh://[email protected]/
- name: Install 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 APP_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo APP_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Build
run: npm run build:linux
- name: Test
run: npm run test
- name: Compress
run: zip -9 -j ${{ env.APP_NAME }}-x64-linux.zip ./build/linux/${{ env.APP_NAME }}
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: linux-x64
path: ./${{ env.APP_NAME }}-x64-linux.zip
upload:
name: Upload builds to Release
runs-on: ubuntu-latest
needs: [build-win, build-macos, build-macos-x64, build-linux]
steps:
- name: Clone repository
uses: actions/checkout@v4
with:
token: ${{ secrets.CONTROL_REPO_TOKEN }}
submodules: recursive
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Download Windows build
uses: actions/download-artifact@v4
with:
name: win-x64
- name: Download macOS build artifact
uses: actions/download-artifact@v4
with:
name: mac-arm64
- name: Download macOS x64 build artifact
uses: actions/download-artifact@v4
with:
name: mac-x64
- name: Download Linux build
uses: actions/download-artifact@v4
with:
name: linux-x64
- 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 APP_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo APP_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Create release
uses: ncipollo/release-action@v1
with:
artifacts: '${{ env.APP_NAME }}-x64-win.zip,
${{ env.APP_NAME }}-arm64-mac.zip,
${{ env.APP_NAME }}-x64-mac.zip,
${{ env.APP_NAME }}-x64-linux.zip'
tag: 'v${{ env.APP_VERSION }}'
token: ${{ secrets.GITHUB_TOKEN }}
draft: true
generateReleaseNotes: true