Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Build and Package

on:
push:
pull_request:

jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
permissions:
contents: read
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'

- name: Install dependencies
# No package-lock.json in this repo, so use npm install
run: npm install --no-audit --no-fund

- name: Build
run: npm run build

- name: Package (Windows)
if: runner.os == 'Windows'
run: npm run package:win

- name: Package (macOS)
if: runner.os == 'macOS'
run: npm run package:mac

- name: Package (Linux)
if: runner.os == 'Linux'
run: npm run package:linux

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
# Name includes the OS for easy identification
name: WeAnimate-${{ matrix.os }}
# electron-packager outputs a folder named WeAnimate-<platform>-<arch>
# (e.g. WeAnimate-win32-x64, WeAnimate-darwin-x64, WeAnimate-linux-x64)
path: WeAnimate-*/
if-no-files-found: error
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,38 @@
<h1>WeAnimate</h1>
<p><b>This project is not affiliated with or endorsed by GoAnimate Inc. or their product Vyond. WeAnimate is a decentralized open source initiative developed exclusively for archival purposes. It operates on a non-profit basis and does not accept any form of donations</b></p>
<br/>
</div>
</div>

## Downloading pre-built binaries

Every push and pull request triggers the [Build and Package](.github/workflows/build.yml) GitHub Actions workflow which compiles the app for Windows, macOS, and Linux.

To download a build:
1. Go to the [Actions tab](../../actions/workflows/build.yml) of this repository.
2. Click on any successful workflow run.
3. Scroll to the **Artifacts** section at the bottom of the run summary.
4. Download the ZIP for your platform:
- `WeAnimate-windows-latest` — contains the Windows folder with `WeAnimate.exe`
- `WeAnimate-macos-latest` — contains the macOS `.app` bundle
- `WeAnimate-ubuntu-latest` — contains the Linux executable folder

## Building locally

```bash
# Install dependencies
npm install

# Build the renderer and Electron main process
npm run build

# Package for the current platform
npm run package
```

Platform-specific packaging scripts are also available:

```bash
npm run package:win # Windows (.ico icon)
npm run package:mac # macOS (.icns icon)
npm run package:linux # Linux (.png icon)
```
5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
"postinstall": "node scripts/fixModules.js",
"dev": "concurrently \"NODE_OPTIONS='--no-deprecation' node scripts/build.mjs --dev\" \"vite dev\"",
"build": "vite build && node scripts/build.mjs",
"package": "npx electron-packager dist 'WeAnimate' --icon=dist/favicon.ico --overwrite"
"package": "npm run package:win",
"package:win": "npx electron-packager dist WeAnimate --icon=dist/favicon.ico --overwrite",
"package:mac": "npx electron-packager dist WeAnimate --icon=dist/favicon.icns --overwrite",
"package:linux": "npx electron-packager dist WeAnimate --icon=dist/favicon.png --overwrite"
},
"engines": {
"node": ">=16"
Expand Down