Skip to content

rewrite of sei-load generator and sender. #235

rewrite of sei-load generator and sender.

rewrite of sei-load generator and sender. #235

Workflow file for this run

name: Build and Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [1.25.1]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- 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: Download dependencies
run: go mod download
- name: Verify dependencies
run: go mod verify
- name: Check golangci-lint version pin is in sync
run: make check-lint-pin
- name: Install golangci-lint
uses: golangci/golangci-lint-action@v7
with:
# Pinned (not `latest`) for determinism. MUST match GOLANGCI_VERSION in
# the Makefile and the version note in .golangci.yml's header comment.
# `latest` drifts between releases and shifts the default linter set,
# which is a "passes locally, fails CI" trap. Bump all three together;
# `make check-lint-pin` (run as a CI step above) enforces the sync.
version: v2.12.2
- name: Run linting
run: make lint
- name: Run tests
run: make test
- name: Build binary
run: make build
- name: Test binary execution (help)
run: ./build/seiload --help
- name: Test dry-run with sample config
run: |
./build/seiload --config profiles/local.json --dry-run --workers 1 --stats-interval 1s &
SEILOAD_PID=$!
sleep 5
kill $SEILOAD_PID || true
wait $SEILOAD_PID 2>/dev/null || true