64 lines
1.3 KiB
YAML
64 lines
1.3 KiB
YAML
# Runs on pull requests: unit tests plus a compile check.
|
|
|
|
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
paths-ignore:
|
|
- '*.md'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
env:
|
|
# Odin release to use (matches `dev-2026-07`, the version used locally).
|
|
# Bump this when you want CI to track a newer Odin release.
|
|
ODIN_VERSION: dev-2026-07
|
|
|
|
jobs:
|
|
test:
|
|
name: Unit tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
submodules: recursive
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version: '1.26'
|
|
|
|
- name: Install Odin ${{ env.ODIN_VERSION }}
|
|
run: scripts/install_odin.sh
|
|
|
|
- name: Install clang
|
|
run: |
|
|
if command -v sudo >/dev/null 2>&1; then
|
|
sudo apt-get update
|
|
sudo apt-get install -y clang
|
|
else
|
|
apt-get update
|
|
apt-get install -y clang
|
|
fi
|
|
|
|
- name: Run Odin unit tests
|
|
run: |
|
|
mkdir -p lib/local
|
|
odin test src -collection:lib=lib/local
|
|
|
|
- name: Verify build
|
|
run: |
|
|
mkdir -p bin
|
|
odin build src -collection:lib=lib/local -o:speed -out:bin/desi_explorer
|
|
|
|
- name: Run Go tests
|
|
run: |
|
|
cd infra
|
|
go mod download
|
|
go test ./...
|
|
|
|
- name: Vet Go code
|
|
run: |
|
|
cd infra
|
|
go vet ./...
|