Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b88807e
ci: add GitHub Actions workflows and improve CI/CD pipeline
ikjeong Nov 3, 2025
cc6ab02
feat: add MCP one-click installation support
ikjeong Nov 3, 2025
76db474
ci: remove E2E tests from CI workflow, keep only unit tests
ikjeong Nov 4, 2025
4f48394
ci: run unit tests only and remove Codecov integration
ikjeong Nov 4, 2025
95d4e59
ci: add artifact permissions and set retention to 1 day
ikjeong Nov 4, 2025
942c218
refactor: simplify build.yml workflow to essential steps only
ikjeong Nov 4, 2025
13cfffe
refactor: simplify release.yml workflow
ikjeong Nov 4, 2025
2231c5f
refactor: run CI before release and reuse coverage artifact
ikjeong Nov 4, 2025
cc4fdc5
refactor: change npm package name to @dev-symphony/sym
ikjeong Nov 4, 2025
06c4bb1
docs: update package name in all documentation
ikjeong Nov 4, 2025
9f61ece
refactor: embed binaries in npm package for private repository
ikjeong Nov 4, 2025
fb2ce64
fix: set MCP default mode to stdio (port=0)
ikjeong Nov 4, 2025
0236f26
fix: exclude binaries from npm/bin/ in git
ikjeong Nov 4, 2025
228dc94
fix: improve CI/CD workflow reliability
ikjeong Nov 4, 2025
afc67f7
fix: resolve critical workflow issues
ikjeong Nov 4, 2025
a39dccc
chore: remove emojis from workflow output messages
ikjeong Nov 4, 2025
8d25776
fix: resolve CI test failures and linter issues
ikjeong Nov 4, 2025
62997a2
docs: update README.md for clarity and conciseness
ikjeong Nov 4, 2025
ee66bd6
feat: add manual trigger support to all workflows
ikjeong Nov 4, 2025
66b438c
fix: update golangci-lint to v2.4.0 for Go 1.25 support
ikjeong Nov 4, 2025
d7ac2d2
chore: remove unused RELEASE_TEMPLATE.md
ikjeong Nov 4, 2025
fe2ed49
fix: upgrade golangci-lint-action to v7 for v2 support
ikjeong Nov 4, 2025
35da5b4
fix: resolve golangci-lint issues (errcheck, ineffassign, staticcheck)
ikjeong Nov 4, 2025
186086c
fix: update golangci-lint installation to v2.4.0 and streamline linte…
ikjeong Nov 4, 2025
ac917c3
fix: resolve remaining errcheck issues for make lint
ikjeong Nov 4, 2025
786f0b7
chore: remove govulncheck from CI workflow
ikjeong Nov 4, 2025
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
95 changes: 95 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Build

on:
workflow_call:
inputs:
version:
description: 'Version to embed in binary'
required: false
type: string
default: 'dev'
upload-artifacts:
description: 'Upload build artifacts'
required: false
type: boolean
default: true
retention-days:
description: 'Artifact retention days'
required: false
type: number
default: 1
workflow_dispatch:
inputs:
version:
description: 'Version to embed in binary'
required: false
type: string
default: 'dev'
upload-artifacts:
description: 'Upload build artifacts'
required: false
type: boolean
default: true
retention-days:
description: 'Artifact retention days'
required: false
type: number
default: 1

jobs:
build:
name: Build ${{ matrix.goos }}-${{ matrix.goarch }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- goos: linux
goarch: amd64
- goos: linux
goarch: arm64
- goos: darwin
goarch: amd64
- goos: darwin
goarch: arm64
- goos: windows
goarch: amd64

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

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.1'
cache: true

- name: Build binary
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: 0
run: |
# Set binary name
VERSION="${{ inputs.version }}"
EXT=""
[ "$GOOS" = "windows" ] && EXT=".exe"
BINARY_NAME="sym-$GOOS-$GOARCH$EXT"

# Build
go build \
-ldflags "-s -w -X main.Version=$VERSION" \
-trimpath \
-o "$BINARY_NAME" \
./cmd/sym

echo "Built $BINARY_NAME"

- name: Upload artifact
if: inputs.upload-artifacts
uses: actions/upload-artifact@v4
with:
name: sym-${{ matrix.goos }}-${{ matrix.goarch }}
path: sym-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }}
if-no-files-found: error
retention-days: ${{ inputs.retention-days }}
82 changes: 82 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: CI

on:
schedule:
# 매일 한국 시간 오전 9시 (UTC 0시)
- cron: '0 0 * * *'
pull_request:
branches:
- main
workflow_call:
workflow_dispatch:

permissions:
contents: read
pull-requests: read
actions: write

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.1'
cache: true

- name: Run go vet
run: go vet ./...

- name: Run golangci-lint
uses: golangci/golangci-lint-action@v7
with:
version: v2.4.0
args: --timeout=5m

test:
name: Unit Test
runs-on: ubuntu-latest

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

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.1'
cache: true

- name: Download dependencies
run: go mod download

- name: Verify dependencies
run: go mod verify

- name: Run tests
run: go test -short -v -race -coverprofile=coverage.out -covermode=atomic ./...

- name: Generate coverage report
run: go tool cover -html=coverage.out -o coverage.html

- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: |
coverage.out
coverage.html
retention-days: 1

build:
name: Build
needs: [lint, test]
uses: ./.github/workflows/build.yml
with:
version: 'ci-build'
upload-artifacts: false
Loading