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
167 changes: 76 additions & 91 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,91 +1,76 @@
name: Build

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
# Job responsible for running linting and tests for the frontend codebase
# Sets up Node.js environment, installs dependencies, runs linting checks
# and executes frontend test suite
lint-test-frontend:
runs-on: ubuntu-latest
steps:
# Check out repository
- name: Check out code
uses: actions/checkout@v2

# Set up node version 20
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
# Install all dependencies
- name: Install dependencies
run: cd front; npm install --include=dev

# Execute React linting checks using make command
- name: Run linters
run: make lint-frontend

# Run frontend tests using make command
- name: Run Tests
run: make run-tests-frontend

# Job responsible for running linting and tests for the backend codebase
# Sets up Go environment, runs linting checks, and executes backend tests
lint-test-backend:
runs-on: ubuntu-latest

steps:
# Check out repository code
- name: Check out code
uses: actions/checkout@v2

# Set up Go environment with specified version
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '1.23.1'

# Execute Go linting checks using make command
- name: Run Linter
run: make lint-backend

# Run backend tests using make command
- name: Run tests
run: make run-tests-backend

# Build job runs after successful completion of lint and test jobs
# Responsible for building both frontend and backend applications
build:
runs-on: ubuntu-latest
needs: [ "lint-test-backend", "lint-test-frontend" ]
steps:
# Check out repository code
- name: Check out code
uses: actions/checkout@v2

# Set up Go environment for backend build
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: '1.23.1'

# Set up Node.js environment for frontend build
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20'

# Install frontend dependencies
- name: Install dependencies
run: cd front; npm install

# Execute build process for both frontend and backend
- name: Run Build
run: make build
name: Build

on:
push:
pull_request:

jobs:
lint-test-frontend:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4

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

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

- name: Install dependencies
run: cd front && pnpm install --frozen-lockfile

- name: Run linters
run: make lint-frontend

- name: Run Tests
run: make run-tests-frontend

lint-test-backend:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.x'

- name: Run Linter
run: make lint-backend

- name: Run tests
run: make run-tests-backend

build:
runs-on: ubuntu-latest
needs: ["lint-test-backend", "lint-test-frontend"]
steps:
- name: Check out code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.x'

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

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

- name: Install dependencies
run: cd front && pnpm install --frozen-lockfile

- name: Run Build
run: make build
49 changes: 49 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Release

on:
push:
tags:
- 'v*'

permissions:
contents: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24.x'

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

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

- name: Install frontend dependencies
run: cd front && pnpm install --frozen-lockfile

- name: Build
run: make build

- name: Prepare release asset
run: |
chmod +x output/observatio
cp output/observatio observatio-${{ github.ref_name }}-linux-amd64

- name: Publish GitHub Release
uses: softprops/action-gh-release@v2
with:
files: observatio-${{ github.ref_name }}-linux-amd64
148 changes: 148 additions & 0 deletions .specify/extensions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
installed: []
settings:
auto_execute_hooks: true
hooks:
before_constitution:
- extension: git
command: speckit.git.initialize
enabled: true
optional: false
prompt: Execute speckit.git.initialize?
description: Initialize Git repository before constitution setup
condition: null
before_specify:
- extension: git
command: speckit.git.feature
enabled: true
optional: false
prompt: Execute speckit.git.feature?
description: Create feature branch before specification
condition: null
before_clarify:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before clarification?
description: Auto-commit before spec clarification
condition: null
before_plan:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before planning?
description: Auto-commit before implementation planning
condition: null
before_tasks:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before task generation?
description: Auto-commit before task generation
condition: null
before_implement:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before implementation?
description: Auto-commit before implementation
condition: null
before_checklist:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before checklist?
description: Auto-commit before checklist generation
condition: null
before_analyze:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before analysis?
description: Auto-commit before analysis
condition: null
before_taskstoissues:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit outstanding changes before issue sync?
description: Auto-commit before tasks-to-issues conversion
condition: null
after_constitution:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit constitution changes?
description: Auto-commit after constitution update
condition: null
after_specify:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit specification changes?
description: Auto-commit after specification
condition: null
after_clarify:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit clarification changes?
description: Auto-commit after spec clarification
condition: null
after_plan:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit plan changes?
description: Auto-commit after implementation planning
condition: null
after_tasks:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit task changes?
description: Auto-commit after task generation
condition: null
after_implement:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit implementation changes?
description: Auto-commit after implementation
condition: null
after_checklist:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit checklist changes?
description: Auto-commit after checklist generation
condition: null
after_analyze:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit analysis results?
description: Auto-commit after analysis
condition: null
after_taskstoissues:
- extension: git
command: speckit.git.commit
enabled: true
optional: true
prompt: Commit after syncing issues?
description: Auto-commit after tasks-to-issues conversion
condition: null
23 changes: 23 additions & 0 deletions .specify/extensions/.registry
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"schema_version": "1.0",
"extensions": {
"git": {
"version": "1.0.0",
"source": "local",
"manifest_hash": "sha256:9731aa8143a72fbebfdb440f155038ab42642517c2b2bdbbf67c8fdbe076ed79",
"enabled": true,
"priority": 10,
"registered_commands": {
"claude": [
"speckit.git.feature",
"speckit.git.validate",
"speckit.git.remote",
"speckit.git.initialize",
"speckit.git.commit"
]
},
"registered_skills": [],
"installed_at": "2026-04-25T23:10:39.619018+00:00"
}
}
}
Loading
Loading