Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
5cd0ddd
Create main.yml
tsubramanian Dec 12, 2024
65cc633
Update main.yml
tsubramanian Dec 12, 2024
f2b8e9f
Update main.yml
tsubramanian Dec 14, 2024
7135973
Update main.yml
tsubramanian Dec 14, 2024
5696f79
Update main.yml
tsubramanian Dec 14, 2024
674f247
Update main.yml
tsubramanian Dec 14, 2024
284cf63
Update main.yml
tsubramanian Dec 14, 2024
f727fbd
Update main.yml
tsubramanian Dec 14, 2024
431f5a0
Update main.yml
tsubramanian Dec 14, 2024
2f1d555
Update main.yml
tsubramanian Dec 14, 2024
3a3aa04
Update main.yml
tsubramanian Dec 14, 2024
82ba6ab
Update main.yml
tsubramanian Dec 14, 2024
6ed0305
Update main.yml
tsubramanian Dec 15, 2024
ab135a9
Update main.yml
tsubramanian Dec 15, 2024
fcdaa15
Update main.yml
tsubramanian Dec 15, 2024
7756cb8
Update main.yml
tsubramanian Dec 15, 2024
1f6711a
Update main.yml
tsubramanian Dec 15, 2024
550cb53
Update main.yml
tsubramanian Dec 15, 2024
0eeef6d
Update main.yml
tsubramanian Dec 15, 2024
16b2ac7
Update main.yml
tsubramanian Dec 15, 2024
1e6b2e2
Update main.yml
tsubramanian Dec 15, 2024
a203c4e
Update main.yml
tsubramanian Dec 15, 2024
aa4421d
Update main.yml
tsubramanian Dec 15, 2024
797eb7e
Update main.yml
tsubramanian Dec 16, 2024
4a8fa3e
Update main.yml
tsubramanian Dec 20, 2024
5f555f1
Create README.md
tsubramanian Dec 20, 2024
e0df2ed
Update main.yml
tsubramanian Feb 3, 2025
9c3b62e
Update main.yml
tsubramanian Feb 4, 2025
e97c70e
Update main.yml
tsubramanian Feb 4, 2025
505d3c7
Update main.yml
tsubramanian Feb 4, 2025
8286849
Update forge.config.ts
tsubramanian Feb 4, 2025
80dc884
Update forge.config.ts
tsubramanian Feb 4, 2025
f516dbf
Update forge.config.ts
tsubramanian Feb 4, 2025
9044353
Update forge.config.ts
tsubramanian Feb 4, 2025
d453025
Update main.yml
tsubramanian Feb 4, 2025
800d593
Update main.yml
tsubramanian Feb 4, 2025
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
101 changes: 101 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: Build Wildbook Installers
on:
push:
branches:
- devops-build
pull_request:

permissions:
issues: write
pull-requests: write
contents: write

jobs:
build:
runs-on: ${{ matrix.os }}
timeout-minutes: 360 # Set the timeout to 6 hours
strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest, ubuntu-latest]

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Ensure setuptools is installed
run: |
python3 -m ensurepip
python3 -m pip install setuptools

- name: Install dependencies in Windows
if: ${{ matrix.os == 'windows-latest' }}
shell: powershell
run: |
$env:NODE_GYP_FORCE_PYTHON = (Get-Command python | Select-Object -ExpandProperty Path)
npm install --no-audit

- name: Install dependencies in Mac
if: ${{ matrix.os == 'macos-latest' }}
shell: bash
run: |
NODE_GYP_FORCE_PYTHON=$(which python3) npm install --save-dev appdmg --no-audit
npm install --no-audit

- name: Install dependencies in Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
shell: bash
run: |
NODE_GYP_FORCE_PYTHON=$(which python3) npm install --save-dev @electron-forge/maker-deb
NODE_GYP_FORCE_PYTHON=$(which python3) npm install --save-dev @electron-forge/maker-rpm
NODE_GYP_FORCE_PYTHON=$(which python3) npm install --no-audit

- name: Build the application
run: npm run make

- name: List Windows output directory
if: ${{ matrix.os == 'windows-latest' }}
shell: cmd
run: dir out\make\squirrel.windows\x64

- name: List Mac output directory
if: ${{ matrix.os == 'macos-latest' }}
shell: bash
run: ls -l out/make

- name: List Linux output directory
if: ${{ matrix.os == 'ubuntu-latest' }}
shell: bash
run: ls -lR out/make

- name: Upload Windows artifacts
if: ${{ matrix.os == 'windows-latest' }}
uses: actions/upload-artifact@v4
with:
name: windows-installer
path: out\make\squirrel.windows\x64\*.exe

- name: Upload Mac artifacts
if: ${{ matrix.os == 'macos-latest' }}
uses: actions/upload-artifact@v4
with:
name: macos-installer
path: out/make/*.dmg

- name: Upload Linux artifacts
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: actions/upload-artifact@v4
with:
name: linux-installer
path: out/make/deb/x64/*.deb
82 changes: 82 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
## Manual Build Instructions


# Project Build and Packaging Instructions

This guide explains how to manually build and package the application for different platforms without using GitHub Actions.

## Prerequisites
- Node.js (v18 or higher)
- Python (v3.10)
- A working internet connection to install dependencies

---

## Steps to Build and Package the Application

### 1. Install Dependencies
Run the following command to install all required dependencies:

```bash
npm install --no-audit
```

If your project relies on native dependencies (e.g., node-gyp), ensure Python is properly configured:

On macOS/Linux:

``` bash

export NODE_GYP_FORCE_PYTHON=$(which python3)
```

On Windows, manually set the Python path by running:

```powershell

$env:NODE_GYP_FORCE_PYTHON = (Get-Command python | Select-Object -ExpandProperty Path)
```

2. Build the Application
Run the following command to generate platform-specific installers:

```bash

npm run make
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

trying to run this on linux, i got this error when i did npm run make:

Error: Could not find any make targets configured for the "linux" platform

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I can add Linux build.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

```

This will create the output files in the out/make directory.

3. Verify the Output
Once the build process is complete, check the out/make directory for the generated files:

On macOS/Linux:

```bash
ls out/make
```

On Windows:

```
powershell

dir out\make\squirrel.windows\x64
```

4. Upload Installers
Locate the generated installer files:

.dmg for macOS
.exe for Windows
Manually upload these files to the desired location (e.g., file server, cloud storage).

## Notes:
If you encounter issues during dependency installation, ensure Python is correctly installed and accessible in your system’s PATH.
Suppress warnings about vulnerabilities using the --no-audit flag when running npm install.
For more debugging, check the build logs in your terminal or use the verbose mode:

```bash

npm run make -- --verbose
```
9 changes: 9 additions & 0 deletions forge.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@ const config: ForgeConfig = {
),
new MakerDMG({ name: "WildEx", icon: icon_path + ".icns", overwrite: true }),
// new MakerZIP({}),
new MakerDeb({
options: {
icon: icon_path + ".icns",
// Optionally, add other supported options such as:
// maintainer: "Your Name <you@example.com>",
// homepage: "https://yourapphomepage.com",
},
}),
// new MakerZIP({}),
],
plugins: [
new WebpackPlugin({
Expand Down