Skip to content
Closed
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
58 changes: 58 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Bug Report
description: Report a bug to help us improve OpenGUI
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: textarea
id: description
attributes:
label: Bug Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what happened...
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What you expected to happen.
validations:
required: true
- type: dropdown
id: component
attributes:
label: Component
description: Which part of OpenGUI is affected?
options:
- Server (Backend)
- Android Client
- Both
validations:
required: true
- type: input
id: version
attributes:
label: Version
description: OpenGUI version or commit hash.
- type: textarea
id: logs
attributes:
label: Relevant Log Output
description: Please copy and paste any relevant log output.
render: shell
41 changes: 41 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Feature Request
description: Suggest an idea for OpenGUI
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to suggest a feature!
- type: textarea
id: problem
attributes:
label: Problem Statement
description: Is your feature request related to a problem? Please describe.
placeholder: I'm always frustrated when...
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like.
validations:
required: true
- type: dropdown
id: component
attributes:
label: Component
description: Which part would this feature affect?
options:
- Server (Backend)
- Android Client
- Both
- Documentation
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Describe any alternative solutions you've considered.
28 changes: 28 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## Description

<!-- Provide a brief description of the changes in this PR -->

## Type of Change

<!-- Check the relevant box(es) -->

- [ ] 🐛 Bug fix
- [ ] ✨ New feature
- [ ] 🔧 Refactor
- [ ] 📝 Documentation update
- [ ] 🧪 Test update
- [ ] 🔨 Chore

## Related Issue

<!-- Link the related issue, e.g., Fixes #123 -->

Fixes #

## Checklist

- [ ] I have followed the project's code style (run `pnpm format-and-lint:fix`)
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] I have updated the documentation accordingly
- [ ] I have run the server locally and verified the changes work
- [ ] My commits follow the [Conventional Commits](https://www.conventionalcommits.org/) format
88 changes: 88 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
lint:
name: Lint & Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.27.0
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: server/pnpm-lock.yaml
- run: cd server && pnpm install --frozen-lockfile
- run: cd server && pnpm format-and-lint

typecheck:
name: Type Check
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.27.0
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: server/pnpm-lock.yaml
- run: cd server && pnpm install --frozen-lockfile
- run: cd server/packages/database && pnpm prisma generate
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Provide DATABASE_URL before Prisma client generation

pnpm prisma generate is run without DATABASE_URL in the environment, but server/packages/database/prisma.config.ts calls env("DATABASE_URL") during Prisma config loading. That makes the typecheck job fail before pnpm build starts (and the same pattern appears in test before pnpm test), so this CI workflow can fail on valid changes.

Useful? React with 👍 / 👎.

- run: cd server && pnpm build

test:
name: Test
runs-on: ubuntu-latest
needs: lint
services:
postgres:
image: postgres:16
env:
POSTGRES_USER: opengui
POSTGRES_PASSWORD: opengui
POSTGRES_DB: opengui
ports:
- "5432:5432"
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:7
ports:
- "6379:6379"
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 10.27.0
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: server/pnpm-lock.yaml
- run: cd server && pnpm install --frozen-lockfile
- run: cd server/packages/database && pnpm prisma generate
- run: cd server/apps/backend && pnpm test
env:
DATABASE_URL: postgresql://opengui:opengui@localhost:5432/opengui
REDIS_HOST: localhost
REDIS_PORT: 6379

33 changes: 33 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# OS
.DS_Store
Thumbs.db
*.log

# IDE
.idea/
.vscode/
*.swp
*.swo
*~

# Node
node_modules/
.pnp
.pnp.js

# Build
dist/
build/
.next/
*.tsbuildinfo

# Environment
.env
.env.local
.env.*.local

# Misc
*.tgz
*.tar.gz
coverage/
.nyc_output/
Loading