diff --git a/.github/workflows/dry-run.yml b/.github/workflows/dry-run.yml new file mode 100644 index 000000000..ea2b2ab9a --- /dev/null +++ b/.github/workflows/dry-run.yml @@ -0,0 +1,93 @@ +name: Dry Run + +on: + workflow_dispatch: + +permissions: + contents: read + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.26" + + - uses: golangci/golangci-lint-action@v7 + with: + version: v2.10 + args: --timeout=5m + + test-unix: + needs: [lint] + strategy: + matrix: + include: + - os: ubuntu-latest + goos: linux + goarch: amd64 + - os: ubuntu-24.04-arm + goos: linux + goarch: arm64 + - os: macos-14 + goos: darwin + goarch: arm64 + - os: macos-15-intel + goos: darwin + goarch: amd64 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.26" + + - name: Run tests + run: go test ./... + + - name: Build binary + run: | + CGO_ENABLED=1 go build \ + -o codebase-memory-mcp \ + ./cmd/codebase-memory-mcp/ + + - name: Smoke test + run: bash scripts/smoke-test.sh ./codebase-memory-mcp + + test-windows: + needs: [lint] + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version: "1.26" + + - uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + path-type: inherit + install: mingw-w64-ucrt-x86_64-gcc + + - name: Run tests + shell: msys2 {0} + run: | + which go + go version + go test ./... + + - name: Build binary + shell: msys2 {0} + run: | + CGO_ENABLED=1 CC=gcc go build \ + -o codebase-memory-mcp.exe \ + ./cmd/codebase-memory-mcp/ + + - name: Smoke test + shell: msys2 {0} + run: bash scripts/smoke-test.sh ./codebase-memory-mcp.exe