Files
logos-cpp-sdk/.github/workflows/ci.yml
T
Dario LipicarandClaude Opus 5 dfd46282a7 chore: pin logos-protocol 0f26ffd, and move CI to Nix 2.35.1 (#133)
Bumps this repo's own `logos-protocol` root pin from 3a31c91d (Jul 31) to
0f26ffd (Aug 6, current master). Span is two protocol PRs, #40 and #41.

Why per-repo pins rather than `follows` overrides: on macOS, two different
protocol revisions statically linked into one process get their weak
definitions coalesced by dyld, so one image's protocol code silently binds
to the other's. That is not a build error — it is a runtime miscompile, and
it bites across real ABI changes (`awaitCompletion` gained parameters;
`RpcValue`'s variant gained `uint64_t` in the middle, renumbering later
alternatives). The durable fix is for every repo in the chain to pin the
same protocol, so no override is needed anywhere.

CI: cachix/install-nix-action v27 -> v31, i.e. Nix 2.22.1 -> 2.35.1. 2.22.1
is old enough to mis-evaluate flake input overrides newer Nix handles fine.
Nothing in this commit needs 2.35.1 — verified to evaluate on 2.22.1 too —
but the rest of the chain does, and logos-standalone-app already runs v31
for exactly this reason.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 11:45:47 -03:00

45 lines
1.2 KiB
YAML

name: CI
# pull_request is unfiltered: stacked PRs (based on other feature branches)
# must run CI too.
on:
push:
branches: [master]
pull_request:
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# v27 pins Nix 2.22.1, which is old enough to mis-evaluate flake input
# overrides that newer Nix handles fine (notably nested
# `a.inputs.b.inputs.c.follows`, which 2.22 rejects with "cannot find
# flake in the flake registries"). v31 pins 2.35.1. Keep this in step
# with logos-standalone-app, which already runs v31 for the same reason.
- uses: cachix/install-nix-action@v31
with:
extra_nix_config: |
experimental-features = nix-command flakes
- uses: cachix/cachix-action@v15
with:
name: logos-co
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build tests
run: nix build '.#tests'
- name: Run SDK tests
run: ./result/bin/sdk_tests
- name: Run generator tests
run: ./result/bin/generator_tests
- name: Run experimental generator tests
run: ./result/bin/experimental_tests
env:
FIXTURES_DIR: ./result/fixtures