Skip to content

chore: release v0.5.2 #25

chore: release v0.5.2

chore: release v0.5.2 #25

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
test:
name: test (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache: true
- run: go vet ./...
- run: go test -race ./...
build:
name: build (${{ matrix.goos }}/${{ matrix.goarch }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- { goos: darwin, goarch: amd64 }
- { goos: darwin, goarch: arm64 }
- { goos: linux, goarch: amd64 }
- { goos: linux, goarch: arm64 }
- { goos: windows, goarch: amd64 }
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.23'
cache: true
- name: build
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: 0
run: |
mkdir -p bin
go build -ldflags "-s -w" -o bin/docops ./cmd/docops
- name: enforce 30MB binary size target (ADR-0012)
shell: bash
run: |
size=$(wc -c < bin/docops* | tr -d ' ')
limit=$((30 * 1024 * 1024))
echo "binary: $size bytes (limit $limit)"
if [ "$size" -gt "$limit" ]; then
echo "::error::binary exceeds 30MB target"
exit 1
fi