Skip to content

chore(main): release 1.13.0 #222

chore(main): release 1.13.0

chore(main): release 1.13.0 #222

Workflow file for this run

name: Test
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: test-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
test:
name: Build & Test
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: go mod tidy check
run: go mod tidy -diff
- name: formatting (gofumpt + goimports)
run: |
set -euo pipefail
fumpt=$(go run mvdan.cc/gofumpt@v0.11.0 -l .)
imports=$(go run golang.org/x/tools/cmd/goimports@v0.49.0 -l .)
out=$(printf '%s\n%s' "$fumpt" "$imports" | grep -v '^$' || true)
if [ -n "$out" ]; then printf '%s\n' "$out"; echo "unformatted Go: run just fmt"; exit 1; fi
- name: quarantine check (expired or malformed quarantines)
run: scripts/quarantine-check.sh check
- name: go vet
run: go vet ./...
- name: go vet (build-tagged code)
run: |
set -euo pipefail
go vet -tags=load ./...
go vet -tags=e2e ./...
go vet -tags=integration ./...
- name: golangci-lint
run: go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.2 run ./...
- name: staticcheck (all build tags)
run: |
set -euo pipefail
SC=honnef.co/go/tools/cmd/staticcheck@v0.8.1
go run $SC ./...
go run $SC -tags=load ./...
go run $SC -tags=e2e ./...
go run $SC -tags=integration ./...
- name: govulncheck (reachable vulnerabilities)
run: go run golang.org/x/vuln/cmd/govulncheck@v1.7.0 ./...
- name: go test (race + cover)
run: go test -race -shuffle=on -coverprofile=coverage.out ./...
- name: coverage gate (statement coverage, every package)
run: |
set -euo pipefail
go run github.com/vladopajic/go-test-coverage/v2@v2.19.0 \
--config=.testcoverage.yml
tagged-suites:
name: Tagged suites (docker)
runs-on: ubuntu-latest
timeout-minutes: 45
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Go
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0
with:
go-version-file: go.mod
cache-dependency-path: go.sum
- name: Hatchet integration suite (durable execution, R3-R5)
run: |
set -euo pipefail
cd test/integration/hatchet
compose="docker compose -f compose.hatchet.yaml"
tenant="707d0855-80ab-4e1f-a156-f1c4546cbf52"
trap 'docker compose -f compose.hatchet.yaml down -v' EXIT
$compose up -d --wait
token=$($compose exec -T hatchet-lite /hatchet-admin token create \
--config /config --tenant-id "$tenant" | tr -d '\r\n')
if [ -z "$token" ]; then
echo "hatchet-admin returned an empty tenant token"
exit 1
fi
env -u ARTEMIS_LIFECYCLE_OK HATCHET_CLIENT_TOKEN="$token" \
HATCHET_CLIENT_HOST_PORT=127.0.0.1:7077 \
HATCHET_CLIENT_TLS_STRATEGY=none \
HATCHET_COMPOSE_FILE="$PWD/compose.hatchet.yaml" \
go test -v -race -tags=integration -count=1 -timeout=20m ../../../internal/hatchet/...
- name: End-to-end stack suite
run: ./scripts/e2e-local.sh