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
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: comment-review
name: Comment Review

on:
issue_comment:
Expand All @@ -7,7 +7,7 @@ on:
types: [created]

jobs:
opencode:
comment_review:
if: |
contains(github.event.comment.body, ' /oc') ||
startsWith(github.event.comment.body, '/oc') ||
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
name: pr-review
name: PR Review

on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

jobs:
review:
if: |
github.event.pull_request.draft == false
runs-on: ubuntu-latest
permissions:
id-token: write
Expand Down
108 changes: 108 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: CI

on:
pull_request:
branches:
- main
paths:
- "**.go"
- "go.mod"
- "go.sum"
- "**.js"
- "**.jsx"
- "**.ts"
- "**.tsx"
- "package.json"
- "bun.lockb"
push:
branches:
- main
paths:
- "**.go"
- "go.mod"
- "go.sum"
- "**.js"
- "**.jsx"
- "**.ts"
- "**.tsx"
- "package.json"
- "bun.lockb"

jobs:
go-tests:
name: Go Tests
runs-on: ubuntu-latest
permissions:
pull-requests: write
contents: read

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.25.0"
check-latest: true

- name: Run Go Tests
run: |
go test ./internal/... -v -race -coverprofile=coverage.out
go install github.com/boumenot/gocover-cobertura@latest
gocover-cobertura < coverage.out > coverage.xml

- name: Code Coverage Report
if: github.event_name == 'pull_request'
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: coverage.xml
badge: true
fail_below_min: true
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: "60 80"

- name: Code Coverage Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request'
with:
recreate: true
path: code-coverage-results.md

app-build:
name: App Build
runs-on: ubuntu-latest
permissions:
pull-requests: write

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.25.0"
check-latest: true

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
chmod +x $(go env GOPATH)/bin/wails3
sudo cp $(go env GOPATH)/bin/wails3 /usr/local/bin/wails

- name: Build the app
run: |
wails generate bindings
wails build
40 changes: 20 additions & 20 deletions .github/workflows/build.yml → .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
name: Wails Build
name: Release

on:
# Only run on version tags (releases)
push:
tags:
- 'v*'
- "v*"
# Allow manual trigger
workflow_dispatch:

Expand Down Expand Up @@ -41,22 +41,22 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.24.0'
go-version: "1.24.0"
check-latest: true

- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest

- name: Install Wails
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest

- name: Install Linux dependencies
- name: Install dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
chmod +x $(go env GOPATH)/bin/wails3
sudo cp $(go env GOPATH)/bin/wails3 /usr/local/bin/wails

- name: Build Application
run: |
Expand Down Expand Up @@ -96,17 +96,17 @@ jobs:
if: matrix.os == 'macos-latest' && github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/v') && env.HAS_NOTARIZE_SECRETS == 'true'
run: |
# Create a zip for notarization
ditto -c -k --keepParent "build/bin/dev-toolbox.app" "build/bin/dev-toolbox.zip"
ditto -c -k --keepParent "build/bin/devtoolbox.app" "build/bin/devtoolbox.zip"

# Submit for notarization
xcrun notarytool submit "build/bin/dev-toolbox.zip" \
xcrun notarytool submit "build/bin/devtoolbox.zip" \
--apple-id "${{ secrets.APPLE_ID }}" \
--password "${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}" \
--team-id "${{ secrets.APPLE_TEAM_ID }}" \
--wait

# Staple the notarization ticket
xcrun stapler staple "build/bin/dev-toolbox.app"
xcrun stapler staple "build/bin/devtoolbox.app"
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
Expand All @@ -121,29 +121,29 @@ jobs:
# macOS: create DMG using create-dmg
brew install create-dmg
# Clean up any existing files
rm -f release/dev-toolbox-${{ matrix.build }}.dmg
rm -f /tmp/rw.*.dev-toolbox-${{ matrix.build }}.dmg
rm -f release/devtoolbox-${{ matrix.build }}.dmg
rm -f /tmp/rw.*.devtoolbox-${{ matrix.build }}.dmg
create-dmg \
--volname "Dev-Toolbox" \
--volname "devtoolbox" \
--window-pos 200 120 \
--window-size 800 400 \
--icon-size 100 \
--app-drop-link 600 185 \
"release/dev-toolbox-${{ matrix.build }}.dmg" \
"build/bin/dev-toolbox.app"
"release/devtoolbox-${{ matrix.build }}.dmg" \
"build/bin/devtoolbox.app"
elif [ "${{ matrix.os }}" = "windows-latest" ]; then
# Windows: Wails already outputs .exe, just copy it
cp build/bin/dev-toolbox.exe release/dev-toolbox-${{ matrix.build }}.exe
cp build/bin/devtoolbox.exe release/devtoolbox-${{ matrix.build }}.exe
else
# Linux: create AppImage or tar.gz
tar -czf "release/dev-toolbox-${{ matrix.build }}.tar.gz" -C build/bin dev-toolbox
tar -czf "release/devtoolbox-${{ matrix.build }}.tar.gz" -C build/bin devtoolbox
fi
shell: bash

- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: dev-toolbox-${{ matrix.build }}-${{ github.ref_name }}
name: devtoolbox-${{ matrix.build }}-${{ github.ref_name }}
path: release/*

# Create Release and upload assets (only on tags)
Expand Down
108 changes: 0 additions & 108 deletions .github/workflows/tests.yml

This file was deleted.

13 changes: 10 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
build/bin
node_modules
dist
dev-toolbox
frontend/node_modules
frontend/dist
.task
devtoolbox
vendor
bin
runtime-debug.js
runtime.js
.task/*
/package.json
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,8 +281,8 @@ func TestDecode(t *testing.T) {
### Installation
```bash
# Clone the repository
git clone https://github.com/vuon9/dev-toolbox.git
cd dev-toolbox
git clone https://github.com/vuon9/devtoolbox.git
cd devtoolbox

# Install dependencies (using Bun)
bun install
Expand Down Expand Up @@ -482,7 +482,7 @@ These guidelines are intended for AI assistants (like opencode) working on this
1. **Run linting & formatting** – Execute any available lint/format commands (see section 8).
2. **Test the tool** – Verify functionality with `wails dev`.
3. **Update `TOOL_STATUS.md`** – Update the tool's status and add completion notes (mark as 🟢 Done when complete).
4. **Update `README.md`** – **REQUIRED: Whenever TOOL_STATUS.md is updated, README.md MUST also be updated to ensure consistency**:
4. **Update `README.md`** – **REQUIRED: Whenever TOOL_STATUS.md is updated, README.md MUST also be updated to ensure consistency**:
- Add new tools to the feature table
- Remove deprecated tools
- Update descriptions if features changed
Expand Down
Loading