Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature - Desktop Application #457

Draft
wants to merge 10 commits into
base: main
Choose a base branch
from
Draft
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
File renamed without changes.
File renamed without changes.
28 changes: 28 additions & 0 deletions desktop/.github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: 2
updates:
# Enable version updates for Node.js dependencies
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
allow:
- dependency-type: "all"
groups:
all:
patterns:
- "*"
ignore:
- dependency-name: "eslint"
versions: ">= 9"

# Enable version updates for rust
- package-ecosystem: "cargo"
directory: "/src-tauri"
schedule:
interval: "weekly"
allow:
- dependency-type: "all"
groups:
all:
patterns:
- "*"
34 changes: 34 additions & 0 deletions desktop/.github/workflows/dependabot-automerge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Automatically squashes and merges Dependabot dependency upgrades if tests pass

name: Dependabot Auto-merge

on: pull_request_target

permissions:
pull-requests: write
contents: write

jobs:
dependabot:
runs-on: ubuntu-latest

if: ${{ github.actor == 'dependabot[bot]' }}
steps:
- name: Fetch Dependabot metadata
id: dependabot-metadata
uses: dependabot/[email protected]
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- name: Approve Dependabot PR
run: gh pr review --approve "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Auto-merge (squash) Dependabot PR
if: ${{ steps.dependabot-metadata.outputs.update-type != 'version-update:semver-major' }}
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46 changes: 46 additions & 0 deletions desktop/.github/workflows/lint-js.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Installs Node.js dependencies and pnpm, and checks formatting + linting

name: Lint Node.js

on:
push:
branches:
- main
pull_request:
paths-ignore:
- "src-tauri/**"
- "README.md"

jobs:
build:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

runs-on: ${{ matrix.os }}

steps:
- name: Disable git core.autocrlf on Windows
if: matrix.os == 'windows-latest'
run: git config --global core.autocrlf false

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

- name: Set up pnpm package manager
uses: pnpm/action-setup@v4
with:
version: latest

- name: Set up Node.js v22
uses: actions/setup-node@v3
with:
node-version: 22
cache: "pnpm"

- name: Install dependencies from lockfile
run: pnpm install --frozen-lockfile

- name: Run lint step
run: pnpm lint
55 changes: 55 additions & 0 deletions desktop/.github/workflows/lint-rs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Installs Rust and checks formatting + linting

name: Lint Rust

on:
push:
branches:
- main
pull_request:
paths-ignore:
- "src/**"
- "package.json"
- "package-lock.json"
- "yarn.lock"
- "pnpm-lock.yaml"
- "README.md"

jobs:
build:
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]

runs-on: ${{ matrix.os }}

steps:
- name: Disable git core.autocrlf on Windows
if: matrix.os == 'windows-latest'
run: git config --global core.autocrlf false

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

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy

- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt install libdbus-1-dev libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev

- name: Create empty 'out' directory
run: mkdir out

- name: Run rustfmt check
run: cargo fmt --all -- --check
working-directory: src-tauri

- name: Run clippy check and deny warnings
run: cargo clippy --all-targets --all-features -- -D warnings
working-directory: src-tauri
38 changes: 38 additions & 0 deletions desktop/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
13 changes: 13 additions & 0 deletions desktop/.lintstagedrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
const path = require("path")

const buildEslintCommand = (filenames) =>
`next lint --fix --file ${filenames
.map((f) => path.relative(process.cwd(), f))
.join(" --file ")}`

module.exports = {
"src/**/*.{js,jsx,ts,tsx}": [buildEslintCommand],
"*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [
"biome check --apply --no-errors-on-unmatched", // Format, sort imports, lint, and apply safe fixes
],
}
1 change: 1 addition & 0 deletions desktop/.node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading