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
112 changes: 71 additions & 41 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,72 +2,102 @@ name: Build
on: [push, pull_request]

jobs:
smoke_test:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4

- name: Install Node.js and NPM
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Pre-download Electron binary
run: node node_modules/electron/install.js

- name: Run Electron smoke test
run: xvfb-run -a npm test

build_on_linux:
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v1
uses: actions/checkout@v4

- name: Install libarchive-tools for pacman
run: |
sudo apt-get update -y && sudo apt-get install -y libarchive-tools

- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
- name: Install Node.js and NPM
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 22
cache: npm

- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}
- name: Install dependencies
run: npm ci

- name: Build Electron app
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: npm run build

# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
- name: Build & release Electron app
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: npm run release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build_on_mac:
runs-on: macos-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v1
uses: actions/checkout@v4

- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
- name: Install Node.js and NPM
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 22
cache: npm

- name: Install dependencies
run: npm ci

- name: Build Electron app
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: npm run build

- name: Build & release Electron app
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: npm run release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}

# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}

build_on_win:
runs-on: windows-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v1
uses: actions/checkout@v4

- name: Install Node.js, NPM and Yarn
uses: actions/setup-node@v1
- name: Install Node.js and NPM
uses: actions/setup-node@v4
with:
node-version: 18
node-version: 22
cache: npm

- name: Build/release Electron app
uses: samuelmeuli/action-electron-builder@v1
with:
# GitHub token, automatically provided to the action
# (No need to define this secret in the repo settings)
github_token: ${{ secrets.github_token }}
- name: Install dependencies
run: npm ci

- name: Build Electron app
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
run: npm run build

# If the commit is tagged with a version (e.g. "v1.0.0"),
# release the app after building
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
- name: Build & release Electron app
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
run: npm run release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
/node_modules/
/node_modules/*
/release_builds/
/dist/
/test-results/
/playwright-report/
build_installer.js
test.html
instanceHistory.json
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ DropPoint helps you drag content without having to open side-by-side windows

Works on **Windows**, **Linux** and **MacOS**.

> **Minimum OS versions:** Windows 10 or later, macOS 12 (Monterey) or later, and a modern 64-bit Linux distribution. Older releases (pre-`1.3.x`) are available for legacy systems on the [Releases Page](https://github.com/GameGodS3/DropPoint/releases).

## Table of Contents
- [:sparkles: Demo](#sparkles-demo)
* [Across maximized windows in the same desktop](#across-maximized-windows-in-the-same-desktop)
Expand Down Expand Up @@ -67,7 +69,9 @@ Go to the [Releases Page](https://github.com/GameGodS3/DropPoint/releases) to do

## :gear: Developer Installation

**You must have NPM and Git installed in your PC**
**You must have Node.js and Git installed in your PC.**

> Use **Node.js 22 LTS** (the version this project is built and tested against — see `.nvmrc`). Newer non-LTS "Current" releases such as Node 26 have ESM module-resolution regressions that break Electron's binary install (`@electron/get` fails to load `sumchecker`). If you use [nvm](https://github.com/nvm-sh/nvm), run `nvm use`.

1. Clone repo and change into directory
```bash
Expand Down
Loading
Loading