fix: wait for build macos x64 before upload #247
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |