mirror of
https://github.com/Vyntral/god-eye.git
synced 2026-05-16 21:43:34 +02:00
0a50fb4eb5
Release infrastructure: - .goreleaser.yml: builds 5-platform binaries (darwin/linux/windows x amd64/arm64), SHA-256 checksums, pre-release detection for -rc tags - .github/workflows/release.yml: runs on any 'v*' tag — test -> build -> publish via goreleaser-action - .github/workflows/ci.yml: test + vet + race detector on every push to main / v2-* and every PR - .gitignore: extended to cover scan artifacts (gods-eye-*.json, report-*.json, *.stderr), YAML configs (god-eye.yaml, .god-eye.yaml), IDE state (.idea, .vscode, .cursor), Claude Code working notes (CLAUDE.md, .claude/), and the /god-eye build artifact Demo GIFs recorded live against scanme.nmap.org (Nmap's authorized test host): - assets/wizard-demo.gif (272 KB): interactive setup walkthrough - assets/live-scan.gif (37 KB): colorized event stream - assets/ai-verbose.gif (122 KB): full AI cascade + end-of-scan brief Legacy v0.1 assets removed: - assets/demo.gif - assets/demo-ai.gif
86 lines
2.1 KiB
YAML
86 lines
2.1 KiB
YAML
# Release workflow — runs on any tag that starts with 'v' (e.g. v2.0.0-rc1).
|
|
#
|
|
# Responsibilities:
|
|
# 1. Run the full test suite with the race detector.
|
|
# 2. Build and publish binaries for macOS / Linux / Windows (amd64 + arm64)
|
|
# via goreleaser-action.
|
|
# 3. Attach them to a GitHub Release whose body comes from .goreleaser.yml
|
|
# headers + CHANGELOG entries.
|
|
#
|
|
# What you need:
|
|
# - Nothing beyond the default GITHUB_TOKEN that Actions provides. goreleaser
|
|
# uses it to create the release.
|
|
#
|
|
# To cut a new release locally:
|
|
# git tag -a v2.0.0-rc1 -m "v2.0.0 RC1"
|
|
# git push origin v2.0.0-rc1
|
|
# Then watch the run under "Actions → Release".
|
|
|
|
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
permissions:
|
|
contents: write # goreleaser needs this to create the release + upload assets.
|
|
|
|
jobs:
|
|
test:
|
|
name: Test with race detector
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
|
|
- name: Cache Go modules
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.cache/go-build
|
|
~/go/pkg/mod
|
|
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-
|
|
|
|
- name: Verify modules
|
|
run: go mod verify
|
|
|
|
- name: Vet
|
|
run: go vet ./...
|
|
|
|
- name: Test (race detector)
|
|
run: go test ./... -race -timeout 180s
|
|
|
|
release:
|
|
name: Build & publish binaries
|
|
needs: test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v5
|
|
with:
|
|
go-version: '1.21'
|
|
|
|
- name: Run goreleaser
|
|
uses: goreleaser/goreleaser-action@v6
|
|
with:
|
|
distribution: goreleaser
|
|
version: '~> v2'
|
|
args: release --clean
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|