Skip to content

feat: Tauri Support #2683

feat: Tauri Support

feat: Tauri Support #2683

Workflow file for this run

name: Build Amethyst
on:
push:
paths-ignore:
- "**/*.md"
pull_request_target:
workflow_dispatch:
jobs:
lint:
name: Check for lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 19.1.0
cache: 'yarn'
- name: Install gcc dependencies
run: sudo apt update && sudo apt install gcc-multilib g++-multilib libvips
- name: Install Dependencies
run: yarn install
- name: Run eslint
run: yarn lint
tests:
name: Run unit tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 19.1.0
cache: 'yarn'
- name: Install gcc dependencies
run: sudo apt update && sudo apt install gcc-multilib g++-multilib libvips
- name: Install Dependencies
run: yarn install
- name: Run Tests
run: npm test
build-windows:
name: Build Windows
runs-on: windows-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 19.1.0
cache: 'yarn'
- name: Install Dependencies
run: yarn install
- name: Build Amethyst
run: yarn package
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
path: |
release/build/*.yml
release/build/*.yaml
release/build/*.exe*
# build-android:
# name: Build Android
# runs-on: ubuntu-latest
# permissions:
# contents: write
# steps:
# - uses: actions/checkout@v3
# with:
# submodules: recursive
# - uses: actions/setup-node@v3
# with:
# node-version: 19.1.0
# cache: 'yarn'
# - name: Install Dependencies
# run: yarn install
# - name: Make gradlew executable
# run: chmod +x ./src/android/gradlew
# - name: Build Amethyst
# run: yarn build:renderer && yarn cap sync && yarn cap build android --keystorepath key.jks --androidreleasetype APK --keystorepass ${{ secrets.ANDROID_KEYSTORE_PASS }} --keystorealias key0 --keystorealiaspass ${{ secrets.ANDROID_KEYSTORE_ALIAS_PASS }}
# - name: Move build files
# run: yarn move-file ./src/android/app/build/outputs/apk/release/app-release-signed.apk ./release/build/android/amethyst-v$(node -p "require('./package.json').version").apk
# - name: Upload Artifacts
# uses: actions/upload-artifact@v3
# with:
# path: |
# release/build/android/*.apk
# release/build/android/*.json
build-macos:
name: Build MacOS
runs-on: macos-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 19.1.0
cache: 'yarn'
- name: Install Dependencies
run: yarn install
- name: Build Amethyst
run: USE_HARD_LINKS=false yarn package
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
path: |
release/build/*.yml
release/build/*.dmg
release/build/*.dmg.*
release/build/*.zip
release/build/*.zip.*
build-linux:
name: Build Linux
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: actions/setup-node@v3
with:
node-version: 19.1.0
cache: 'yarn'
- name: Install linux dependencies
run: sudo apt update && sudo apt install rpm snapd libarchive-tools && sudo snap install snapcraft --classic && sudo snap install multipass --beta --classic
- name: Install Dependencies
run: yarn install
- name: Build Amethyst
run: yarn package
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
path: |
release/build/*.yml
release/build/*.yaml
release/build/*.AppImage
release/build/*.rpm
release/build/*.deb
release/build/*.pacman
release/build/*.snap
publish-releases:
if: startsWith(github.ref, 'refs/tags/v')
needs: [build-windows, build-macos, build-linux]
name: Publish Releases
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download All Artifacts
uses: actions/download-artifact@v3
with:
name: artifact
- name: Post Releases
uses: ncipollo/release-action@v1
with:
artifacts: "./*"