Skip to content

feat: add code-agent skill and builtin tools #82

feat: add code-agent skill and builtin tools

feat: add code-agent skill and builtin tools #82

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.25"
- name: Verify dependencies
run: |
cd forge-core && go mod verify
cd ../forge-cli && go mod verify
cd ../forge-plugins && go mod verify
- name: Vet
run: go vet ./forge-core/... ./forge-cli/... ./forge-plugins/...
- name: Check formatting
run: test -z "$(gofmt -l forge-core forge-cli forge-plugins)"
- name: Test
run: go test -race -coverprofile=coverage.out ./forge-core/... ./forge-cli/... ./forge-plugins/...
- name: Check coverage threshold
run: |
COVERAGE=$(go tool cover -func=coverage.out | grep total | awk '{print $3}' | tr -d '%')
echo "Total coverage: ${COVERAGE}%"
if (( $(echo "$COVERAGE < 70" | bc -l) )); then
echo "::warning::Coverage ${COVERAGE}% is below 70% threshold"
fi
- name: Upload coverage
uses: actions/upload-artifact@v4
with:
name: coverage
path: coverage.out
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.25"
- uses: golangci/golangci-lint-action@v7
with:
version: v2.10.1
args: ./forge-core/... ./forge-cli/... ./forge-plugins/...
integration:
name: Integration Tests
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.25"
- name: Integration tests
run: go test -race -tags=integration ./forge-core/... ./forge-cli/... ./forge-plugins/...
build:
name: Build (${{ matrix.goos }}/${{ matrix.goarch }})
runs-on: ubuntu-latest
needs: [test, lint]
strategy:
matrix:
include:
- goos: linux
goarch: amd64
- goos: linux
goarch: arm64
- goos: darwin
goarch: amd64
- goos: darwin
goarch: arm64
- goos: windows
goarch: amd64
- goos: windows
goarch: arm64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.25"
- name: Build
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: "0"
run: cd forge-cli && go build -ldflags "-s -w" -o ../forge-${{ matrix.goos }}-${{ matrix.goarch }} ./cmd/forge