Merge pull request #75 from vitalygashkov/next #106
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@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 |