Skip to content

Commit f5ba5aa

Browse files
committed
feat: implement in-app updater, add GitHub issue templates, and configure release workflows
1 parent aae6376 commit f5ba5aa

13 files changed

Lines changed: 534 additions & 12 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior in DaisyTube
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to report a bug! Please fill out the sections below so we can reproduce and fix the issue.
10+
11+
- type: dropdown
12+
id: os
13+
attributes:
14+
label: Operating System
15+
options:
16+
- macOS
17+
- Windows
18+
- Linux
19+
- Android
20+
validations:
21+
required: true
22+
23+
- type: textarea
24+
id: description
25+
attributes:
26+
label: Describe the bug
27+
description: A clear and concise description of what the bug is.
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: steps
33+
attributes:
34+
label: Steps to reproduce
35+
description: How can we reproduce this behavior?
36+
placeholder: |
37+
1. Go to '...'
38+
2. Click on '...'
39+
3. See error
40+
validations:
41+
required: true
42+
43+
- type: textarea
44+
id: expected
45+
attributes:
46+
label: Expected behavior
47+
description: What did you expect to happen?
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: screenshots
53+
attributes:
54+
label: Screenshots / Logs
55+
description: If applicable, add screenshots or paste relevant log output.
56+
validations:
57+
required: false
58+
59+
- type: dropdown
60+
id: area
61+
attributes:
62+
label: Affected area
63+
description: Which part of the app is affected?
64+
multiple: true
65+
options:
66+
- Video Playback
67+
- Search
68+
- Subscriptions / Feed
69+
- SponsorBlock
70+
- Cloud Sync / Auth
71+
- Invidious Companion
72+
- UI / Theme
73+
- Other
74+
validations:
75+
required: false
76+
77+
- type: textarea
78+
id: context
79+
attributes:
80+
label: Additional context
81+
description: Any other context about the problem.
82+
validations:
83+
required: false

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: true
2+
contact_links:
3+
- name: Invidious Companion
4+
url: https://github.com/iv-org/invidious-companion/issues
5+
about: For issues specific to the upstream Invidious Companion server, please file them there.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement for DaisyTube
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Have an idea for DaisyTube? We'd love to hear it!
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem or motivation
15+
description: Is your feature request related to a problem? Describe it.
16+
placeholder: I'm always frustrated when...
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed solution
24+
description: Describe the solution or feature you'd like.
25+
validations:
26+
required: true
27+
28+
- type: textarea
29+
id: alternatives
30+
attributes:
31+
label: Alternatives considered
32+
description: Any alternative solutions or workarounds you've considered.
33+
validations:
34+
required: false
35+
36+
- type: dropdown
37+
id: area
38+
attributes:
39+
label: Area
40+
description: Which part of the app does this relate to?
41+
multiple: true
42+
options:
43+
- Video Playback
44+
- Search
45+
- Subscriptions / Feed
46+
- SponsorBlock
47+
- Cloud Sync / Auth
48+
- Invidious Companion
49+
- UI / Theme
50+
- Other
51+
validations:
52+
required: false
53+
54+
- type: textarea
55+
id: context
56+
attributes:
57+
label: Additional context
58+
description: Any other context, mockups, or screenshots.
59+
validations:
60+
required: false

.github/workflows/release.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- 'v*'
6+
7+
jobs:
8+
release-desktop:
9+
strategy:
10+
fail-fast: false
11+
matrix:
12+
include:
13+
- platform: 'macos-latest' # usually arm64 now
14+
- platform: 'ubuntu-22.04'
15+
- platform: 'windows-latest'
16+
runs-on: ${{ matrix.platform }}
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Install pnpm
21+
uses: pnpm/action-setup@v3
22+
with:
23+
version: 9
24+
25+
- name: Setup Node
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: 20
29+
cache: 'pnpm'
30+
cache-dependency-path: 'tauri-app/pnpm-lock.yaml'
31+
32+
- name: Setup Rust
33+
uses: dtolnay/rust-toolchain@stable
34+
35+
- name: Setup Deno
36+
uses: denoland/setup-deno@v1
37+
with:
38+
deno-version: v1.46.x
39+
40+
- name: Install Linux dependencies
41+
if: matrix.platform == 'ubuntu-22.04'
42+
run: |
43+
sudo apt-get update
44+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
45+
46+
- name: Build invidious-companion (Deno Sidecar)
47+
shell: bash
48+
run: |
49+
TARGET=$(rustc -vV | sed -n 's/host: //p')
50+
echo "Rust Target: $TARGET"
51+
cd invidious-companion
52+
deno task compile
53+
cd ..
54+
mkdir -p tauri-app/src-tauri/binaries
55+
if [ "$RUNNER_OS" = "Windows" ]; then
56+
mv invidious-companion/invidious_companion.exe "tauri-app/src-tauri/binaries/invidious-companion-$TARGET.exe"
57+
else
58+
mv invidious-companion/invidious_companion "tauri-app/src-tauri/binaries/invidious-companion-$TARGET"
59+
fi
60+
61+
- name: Install dependencies
62+
working-directory: ./tauri-app
63+
run: pnpm install
64+
65+
- name: Build Tauri App
66+
uses: tauri-apps/tauri-action@v0
67+
env:
68+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69+
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
70+
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
71+
with:
72+
projectPath: ./tauri-app
73+
tagName: ${{ github.ref_name }}
74+
releaseName: "Release ${{ github.ref_name }}"
75+
releaseBody: "See the assets to download this version and install."
76+
releaseDraft: false
77+
prerelease: false
78+
79+

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
.github
21
.DS_Store
32
.agents
43
skills-lock.json

tauri-app/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
"@tauri-apps/api": "^2",
1616
"@tauri-apps/plugin-http": "^2.5.8",
1717
"@tauri-apps/plugin-opener": "^2",
18+
"@tauri-apps/plugin-process": "~2.3.1",
1819
"@tauri-apps/plugin-shell": "^2.3.5",
20+
"@tauri-apps/plugin-updater": "~2",
1921
"ajv": "^8.18.0",
2022
"appwrite": "^24.1.1",
2123
"crypto-js": "^4.2.0",

tauri-app/pnpm-lock.yaml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)