Files
LocalAI/.github/workflows/build-test.yaml
T
Ettore Di Giacinto f07c6c1b84 ci: free runner disk in the build-test job
The GoReleaser step failed on master with no space left on device
while compiling. Run the existing free-runner-disk script right after
checkout, before Go is installed, as the add-on jobs do.

Assisted-by: Claude:claude-sonnet-5-5
2026-11-04 15:19:44 +00:00

128 lines
4.0 KiB
YAML

# Concurrency policy: a newer push to master cancels the in-flight run of this
# workflow on master, because the newer commit contains the older one and the
# result that matters is the newest. PR runs group by PR number (as before),
# tag pushes group by their own tag ref, and schedule/dispatch runs group by
# commit SHA, so none of those is ever cancelled by a master push.
# See .agents/ci-caching.md, section "Concurrency".
name: Build test
on:
pull_request:
paths:
- 'core/**'
- 'pkg/**'
- 'cmd/**'
- 'internal/**'
- 'backend/*.proto'
- 'backend/*/*.proto'
- 'addons/**'
- 'configuration/**'
- 'swagger/**'
- 'prompt-templates/**'
- '.goreleaser*'
- 'go.mod'
- 'go.sum'
- 'Makefile'
- 'scripts/**'
- '.github/actions/**'
- '.github/workflows/build-test.yaml'
- 'Entitlements.plist'
push:
branches: [master]
paths:
- 'core/**'
- 'pkg/**'
- 'cmd/**'
- 'internal/**'
- 'backend/*.proto'
- 'backend/*/*.proto'
- 'addons/**'
- 'configuration/**'
- 'swagger/**'
- 'prompt-templates/**'
- '.goreleaser*'
- 'go.mod'
- 'go.sum'
- 'Makefile'
- 'scripts/**'
- '.github/actions/**'
- '.github/workflows/build-test.yaml'
- 'Entitlements.plist'
concurrency:
group: ci-build-test-${{ github.event.pull_request.number || (github.event_name == 'push' && github.ref) || github.sha }}-${{ github.repository }}
cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/master') }}
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Free disk space
# The three-platform build and the UI build fill the hosted runner and
# fail with "no space left on device". Remove the unused preinstalled
# toolchains before Go is installed.
run: sh scripts/ci/free-runner-disk.sh
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25
# A PR builds only the host target. The three-platform cross-compile
# (linux/amd64, linux/arm64, darwin/arm64) is the bulk of this job's
# ~6.6min median and no PR consumes the resulting binaries. The
# before-hooks (protogen-go, react-ui, go mod tidy) run either way, so the
# "is the release build broken" signal is unchanged. master and tags still
# build everything.
- name: Run GoReleaser
run: |
make ${{ github.event_name == 'pull_request' && 'dev-dist-single' || 'dev-dist' }}
launcher-build-darwin:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25
- name: Build launcher for macOS ARM64
run: |
make build-launcher-darwin
ls -liah dist
- name: Upload macOS launcher artifacts
uses: actions/upload-artifact@v7
with:
name: launcher-macos
path: dist/
retention-days: 30
launcher-build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Configure apt mirror on runner
uses: ./.github/actions/configure-apt-mirror
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25
- name: Build launcher for Linux
run: |
sudo apt-get update
sudo apt-get install golang gcc libgl1-mesa-dev xorg-dev libxkbcommon-dev
make build-launcher-linux
- name: Upload Linux launcher artifacts
uses: actions/upload-artifact@v7
with:
name: launcher-linux
path: local-ai-launcher-linux.tar.xz
retention-days: 30