Skip to content

Refactor config loading and model support in tests #39

Refactor config loading and model support in tests

Refactor config loading and model support in tests #39

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
build:
name: Build and Test
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
go-version: ['1.21', '1.22']
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}
cache: true
cache-dependency-path: go.sum
- name: Install dependencies
run: go mod download
- name: Verify dependencies
run: go mod verify
- name: Run go vet
run: go vet ./...
- name: Run tests
run: go test -v -race -coverprofile coverage.txt -covermode atomic ./...
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./coverage.txt
flags: unittests
name: codecov-umbrella
- name: Build (Anthropic mode)
run: go build -v -o factory-proxy .
- name: Build (OpenAI mode)
run: go build -v -tags openai -o factory-proxy-openai .
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
release:
name: Create Release
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.22'
- name: Build binaries
run: |
# Linux AMD64
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o factory-proxy-linux-amd64 .
GOOS=linux GOARCH=amd64 go build -tags openai -ldflags="-s -w" -o factory-proxy-openai-linux-amd64 .
# Linux ARM64
GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o factory-proxy-linux-arm64 .
GOOS=linux GOARCH=arm64 go build -tags openai -ldflags="-s -w" -o factory-proxy-openai-linux-arm64 .
# macOS AMD64
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o factory-proxy-darwin-amd64 .
GOOS=darwin GOARCH=amd64 go build -tags openai -ldflags="-s -w" -o factory-proxy-openai-darwin-amd64 .
# macOS ARM64
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o factory-proxy-darwin-arm64 .
GOOS=darwin GOARCH=arm64 go build -tags openai -ldflags="-s -w" -o factory-proxy-openai-darwin-arm64 .
# Windows AMD64
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o factory-proxy-windows-amd64.exe .
GOOS=windows GOARCH=amd64 go build -tags openai -ldflags="-s -w" -o factory-proxy-openai-windows-amd64.exe .
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
factory-proxy-*
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}