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
62 changes: 62 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: CI — build tauri app

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

jobs:
build-linux:
name: Build (linux)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Install system packages (GTK, WebKit, AppImage deps)
run: |
sudo apt-get update
sudo apt-get install -y build-essential curl wget pkg-config libssl-dev libgtk-3-dev libwebkit2gtk-4.1-dev librsvg2-dev libfuse2

- name: Cache cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-

- name: Install NPM dependencies
run: npm ci

- name: Build frontend (Vite)
run: npm run build

- name: Tauri build
# runs `npm run tauri build` which uses the project-local @tauri-apps/cli
env:
# ensures Tauri uses the release profile
TAURI_SKIP_TAURI_BUILD: 'false'
run: npm run tauri build --if-present

- name: Upload packaging artifacts
uses: actions/upload-artifact@v4
with:
name: tauri-bundles
path: src-tauri/target/release/bundle
30 changes: 26 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,24 @@ npm install
npm run tauri dev
```

### 🧩 Continuous integration (GitHub Actions)

This repository includes a GitHub Actions workflow that builds the frontend and the Tauri app on Ubuntu.

What it does:
- Installs Node.js and Rust toolchain
- Installs system packages required by Tauri (GTK, WebKit, pkg-config, OpenSSL headers)
- Builds the Vite frontend (`npm run build`)
- Runs the Tauri build (`npm run tauri build`) and uploads any artifacts under `src-tauri/target/release/bundle`

If you want to reproduce the CI environment locally, follow the native deps step (example for Ubuntu) and then run:

```bash
npm ci
npm run build
npm run tauri build
```

> **Linux tip:** if GTK/WebKit headers aren’t detected, prefix dev/test commands with `PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig:$PKG_CONFIG_PATH` (same for `cargo check`).

### Splash + icon tweaks
Expand Down Expand Up @@ -60,13 +78,17 @@ PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig:$PKG_CO
3. Install the `.deb` locally:

```bash
sudo apt install ./src-tauri/target/release/bundle/deb/Termalime_0.1.0_amd64.deb
sudo apt install ./src-tauri/target/release/bundle/deb/Termalime_0.2.0_amd64.deb
```

Artifacts land under `src-tauri/target/release/bundle/`:

- `deb/Termalime_0.1.0_amd64.deb` → install with `apt`
- `appimage/Termalime_0.1.0_amd64.AppImage` → `chmod +x` then run directly
- `rpm/Termalime-0.1.0-1.x86_64.rpm` → for Fedora/RHEL friends
- `deb/Termalime_0.2.0_amd64.deb` → install with `apt`
- `appimage/Termalime_0.2.0_amd64.AppImage` → `chmod +x` then run directly
- `rpm/Termalime-0.2.0-1.x86_64.rpm` → for Fedora/RHEL friends

Adjust `bundle.targets` or metadata inside `src-tauri/tauri.conf.json` if you only need specific formats or want to bump versions.

V0.2 Releases - December 25
- Introduces the preflight checker that checks potential malicious commands which are pasted in
- Adds a settings menu for Bot tweaking and visual settings
53 changes: 51 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "Termalime",
"private": true,
"version": "0.1.0",
"version": "0.2.0",
"type": "module",
"scripts": {
"dev": "vite",
Expand All @@ -15,6 +15,7 @@
"@xterm/addon-fit": "^0.10.0",
"@xterm/xterm": "^5.5.0",
"clsx": "^2.1.1",
"framer-motion": "^12.23.24",
"lucide-react": "^0.553.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
Expand Down
63 changes: 62 additions & 1 deletion src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "Termalime"
version = "0.1.0"
version = "0.2.0"
description = "A Terminal with an Ollama Co-Pilot"
authors = ["Davey Mason"]
edition = "2021"
Expand All @@ -11,7 +11,7 @@ edition = "2021"
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "Termalime_lib"
name = "termalime_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

[build-dependencies]
Expand All @@ -29,4 +29,5 @@ uuid = { version = "1", features = ["v4"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "rustls-tls"] }
tokio = { version = "=1.40.0", features = ["macros", "rt-multi-thread", "sync"] }
futures-util = "0.3"
json5 = "0.4"

Loading
Loading