Skip to content

Threads monitor background shells: a turn that ends with a shell, monitor or workflow still running shows Monitoring, not Complete #29

Threads monitor background shells: a turn that ends with a shell, monitor or workflow still running shows Monitoring, not Complete

Threads monitor background shells: a turn that ends with a shell, monitor or workflow still running shows Monitoring, not Complete #29

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
laws:
name: Check and prove
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-bend
- run: scripts/check.sh
test:
name: Tests
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-bend
- uses: oven-sh/setup-bun@v2
- run: scripts/test.sh
build:
name: Build ${{ matrix.target }}
needs: [laws]
strategy:
fail-fast: false
matrix:
include:
- { target: linux-x64, os: ubuntu-24.04 }
- { target: linux-arm64, os: ubuntu-24.04-arm }
# macOS is on hold; scripts/build.sh builds it as hub + web server
# - { target: darwin-arm64, os: macos-15 }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-bend
- uses: oven-sh/setup-bun@v2
- name: Swap for the compile
# clang takes about 20 GB to compile the app's C (one large file);
# the Linux runners have 16, so without swap the compile can be killed
if: runner.os == 'Linux'
# the swap file goes on /mnt when the runner has it, and never takes
# more than the free space less 8 GB (a full disk kills the runner)
run: |
dir=/; [ -d /mnt ] && dir=/mnt
df -h / /mnt || true
free_gb=$(df -BG --output=avail "$dir" | tail -1 | tr -dc 0-9)
size=$(( free_gb - 8 )); [ "$size" -gt 16 ] && size=16
if [ "$size" -ge 2 ]; then
sudo fallocate -l "${size}G" "$dir/swap-build"
sudo chmod 600 "$dir/swap-build"
sudo mkswap "$dir/swap-build"
sudo swapon "$dir/swap-build"
else
echo "only ${free_gb} GB free on $dir: no swap"
fi
free -h
- name: Install clang 19
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y clang-19 libx11-dev
sudo ln -sf /usr/bin/clang-19 /usr/local/bin/clang
- run: clang --version
- run: scripts/build.sh
- run: scripts/smoke.sh
- uses: actions/upload-artifact@v4
with:
name: backplane-${{ matrix.target }}
path: dist/
retention-days: 7