Skip to content

runtime: preserve canonical child ToolArgs contract #233

runtime: preserve canonical child ToolArgs contract

runtime: preserve canonical child ToolArgs contract #233

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
cache: true
cache-dependency-path: go.sum
- name: Verify build
run: |
go mod download
go build ./...
- name: Install protoc (for make tools)
run: |
sudo apt-get update
sudo apt-get install -y protobuf-compiler
- name: Install developer tools
run: |
make tools
- name: Install Goa CLI
run: |
go install goa.design/goa/v3/cmd/goa@latest
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
- name: Lint (golangci-lint v2)
run: |
golangci-lint run --timeout=5m
if: success()
- name: Run unit tests
run: |
make test
integration-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.25.x'
cache: true
cache-dependency-path: go.sum
- name: Install latest protoc
run: |
set -euo pipefail
sudo apt-get update
sudo apt-get install -y unzip jq
PROTOC_VERSION=$(curl -s https://api.github.com/repos/protocolbuffers/protobuf/releases/latest | jq -r '.tag_name' | sed 's/^v//')
ARCH=$(uname -m)
case "$ARCH" in
x86_64|amd64) ARCH=x86_64 ;;
aarch64|arm64) ARCH=aarch_64 ;;
*) echo "Unsupported arch: $ARCH" ; exit 1 ;;
esac
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
FNAME="protoc-${PROTOC_VERSION}-${OS}-${ARCH}.zip"
URL="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/${FNAME}"
echo "Downloading $URL"
curl -sSL -o /tmp/protoc.zip "$URL"
sudo unzip -o /tmp/protoc.zip -d /usr/local
/usr/local/bin/protoc --version
- name: Install protoc plugins
run: |
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.35.1
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1
- name: Run integration tests
run: |
cd integration_tests
go test -v ./tests