Skip to content

remove go installation #194

remove go installation

remove go installation #194

Workflow file for this run

name: Publish
on:
push:
branches: [master]
pull_request:
branches: [master]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: write
jobs:
publish:
strategy:
matrix:
cfg:
- { platform: linux-64, platform_name: Linux x64, os: ubuntu-latest, tinyrange_os: linux-amd64 }
- { platform: linux-arm64, platform_name: Linux arm64, os: ubuntu-latest, tinyrange_os: linux-arm64 }
- { platform: mac, platform_name: macOS, os: macos-latest, tinyrange_os: darwin-arm64 }
- { platform: win, platform_name: Windows, os: windows-latest, tinyrange_os: windows-amd64 }
name: '${{ matrix.cfg.platform_name }} installer'
runs-on: ${{ matrix.cfg.os }}
defaults:
run:
# needed for conda to work
shell: bash -el {0}
steps:
- uses: actions/checkout@v4
- name: Install node
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'yarn'
- name: Install dependencies
# pin Pillow version to prevent Windows build errors
run: |
npm install --global yarn --prefer-offline
yarn install
# - uses: actions/download-artifact@v4
# with:
# pattern: tinyrange-${{ matrix.cfg.tinyrange_os }}*
- name: Check Lint & Prettier
run: |
yarn lint:check
- name: Get package info
shell: bash
id: package-info
run: |
echo "version=$(python scripts/get_package_version.py --package_name neurodesk)" >> $GITHUB_OUTPUT
echo "tinyrange_version=$(python scripts/get_package_version.py --package_name tinyrange)" >> $GITHUB_OUTPUT
- name: Install TinyRange
run: |
echo $(ls)
curl -o tinyrange.zip -L https://github.com/tinyrange/tinyrange/releases/download/v${{ steps.package-info.outputs.tinyrange_version}}/tinyrange-${{ matrix.cfg.tinyrange_os }}.zip
unzip tinyrange.zip
echo $(ls)
- name: 'Find Release with tag v${{ steps.package-info.outputs.version}}'
uses: actions/github-script@v6
id: release-exists
env:
APP_VERSION: ${{ steps.package-info.outputs.version}}
with:
script: |
const releases = await github.rest.repos.listReleases({
owner: '${{ github.repository_owner }}',
repo: '${{ github.repository }}'.split('/')[1]
})
const tagName = `v${process.env.APP_VERSION}`
const releaseWithTag = releases.data.find(release => release.tag_name === tagName && (release.draft || release.prerelease))
return releaseWithTag ? 'true' : 'false'
result-encoding: string
- name: Create Application Installer for Test
env:
CSC_IDENTITY_AUTO_DISCOVERY: false # disable code signing if not release asset
run: |
yarn dist:${{ matrix.cfg.platform }}
if: steps.release-exists.outputs.result == 'false'
- name: Create Application Installer for Release
env:
CSC_IDENTITY_AUTO_DISCOVERY: true # disable code signing if not release asset
CSC_FOR_PULL_REQUEST: true
APPLEID: ${{ secrets.APPLEID }}
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.CSC_LINK }}
run: |
set env DEBUG=electron-builder
yarn dist:${{ matrix.cfg.platform }}
if: steps.release-exists.outputs.result == 'true'
- name: Upload Debian x64 Installer
if: matrix.cfg.platform == 'linux-64'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-debian-installer-x64
path: |
dist/NeurodeskApp.deb
- name: Upload Fedora x64 Installer
if: matrix.cfg.platform == 'linux-64'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-fedora-installer-x64
path: |
dist/NeurodeskApp.rpm
- name: Upload Debian arm64 Installer
if: matrix.cfg.platform == 'linux-arm64'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-debian-installer-arm64
path: |
dist/NeurodeskApp.deb
- name: Upload Fedora arm64 Installer
if: matrix.cfg.platform == 'linux-arm64'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-fedora-installer-arm64
path: |
dist/NeurodeskApp.rpm
- name: Upload macOS x64 Installer
if: matrix.cfg.platform == 'mac'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-mac-installer-x64
path: |
dist/NeurodeskApp-x64.dmg
- name: Upload macOS arm64 Installer
if: matrix.cfg.platform == 'mac'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-mac-installer-arm64
path: |
dist/NeurodeskApp-arm64.dmg
- name: Upload Windows Installer
if: matrix.cfg.platform == 'win'
uses: actions/upload-artifact@v4
with:
name: NeurodeskApp-windows-installer
path: |
dist/NeurodeskApp-Setup.exe
- name: Upload Debian Installer x64 as Release asset
if: matrix.cfg.platform == 'linux-64' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp.deb
asset_name: NeurodeskApp-Setup-Debian-x64.deb
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload Fedora Installer x64 as Release asset
if: matrix.cfg.platform == 'linux-64' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp.rpm
asset_name: NeurodeskApp-Setup-Fedora-x64.rpm
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload Debian Installer arm64 as Release asset
if: matrix.cfg.platform == 'linux-arm64' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp.deb
asset_name: NeurodeskApp-Setup-Debian-arm64.deb
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload Fedora Installer arm64 as Release asset
if: matrix.cfg.platform == 'linux-arm64' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp.rpm
asset_name: NeurodeskApp-Setup-Fedora-arm64.rpm
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload macOS x64 Installer as Release asset
if: matrix.cfg.platform == 'mac' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp-x64.dmg
asset_name: NeurodeskApp-Setup-macOS-x64.dmg
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload macOS arm64 Installer as Release asset
if: matrix.cfg.platform == 'mac' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp-arm64.dmg
asset_name: NeurodeskApp-Setup-macOS-arm64.dmg
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload macOS x64 App as Release asset
if: matrix.cfg.platform == 'mac' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp-x64.zip
asset_name: NeurodeskApp-macOS-x64.zip
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload macOS arm64 App as Release asset
if: matrix.cfg.platform == 'mac' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp-arm64.zip
asset_name: NeurodeskApp-macOS-arm64.zip
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload Windows Installer as Release asset
if: matrix.cfg.platform == 'win' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/NeurodeskApp-Setup.exe
asset_name: NeurodeskApp-Setup-Windows.exe
tag: v${{ steps.package-info.outputs.version}}
overwrite: true
- name: Upload latest.yml Release asset
if: matrix.cfg.platform == 'win' && steps.release-exists.outputs.result == 'true'
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: dist/latest.yml
asset_name: latest.yml
tag: v${{ steps.package-info.outputs.version}}
overwrite: true