Files
packfs/.gitea/workflows/ci.yml
T
retoorandClaude Sonnet 5 21bcb4640f
CI / build-and-test (push) Failing after 23s
Move CI to Gitea Actions; this project is hosted on Gitea, not GitHub
Per explicit direction: this repository is not going on GitHub. Moved
.github/workflows/ci.yml to .gitea/workflows/ci.yml (Gitea Actions'
convention) and updated every doc that referenced the old path or assumed
GitHub-specific features:

- .gitea/workflows/ci.yml: added a header comment on the two things that
  are genuinely Gitea-specific and instance-dependent, not just a renamed
  file -- `runs-on: ubuntu-latest` must match a label the actual
  registered Gitea runner advertises (there is no GitHub-hosted-runner
  equivalent, this is self-hosted), and `actions/checkout@v4` resolves
  against whatever action source that runner is configured with.
- CONTRIBUTING.md: corrected a claim that no longer holds -- it previously
  said CI "runs on a normal, unrestricted GitHub Actions VM where TSan is
  expected to work"; since this is actually a self-hosted Gitea runner
  whose environment isn't controlled by this repo, that assumption isn't
  something this repo can vouch for, so the text now says so rather than
  carrying the old (GitHub-shaped) assumption forward silently.
- SECURITY.md: removed a claim this project can't back up (that "private
  security advisories" are available once hosted -- that's a GitHub
  feature this repo never had access to); reporting is by direct email to
  the maintainer only.
- README.md: fixed a real gap while in here -- the "Security" section
  never actually linked to SECURITY.md despite it existing since the
  previous commit.
- CLAUDE.md, CHANGELOG.md: updated path references; CLAUDE.md's
  self-evaluation section (a historical record of an audit finding) keeps
  the old .github path where it describes what was literally true at that
  time, with a note explaining the rename, rather than rewriting history.

Verified: clean make all + make test, all 6 binaries pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UqJpkdJ6Njnt1pw3CbghzB
2026-09-14 11:03:20 +00:00

58 lines
2.2 KiB
YAML

# Gitea Actions workflow (not GitHub Actions — this project is hosted on
# Gitea, see CONTRIBUTING.md). Gitea Actions' YAML is GitHub-Actions-
# compatible, but two things here are Gitea-specific and need to match
# your actual instance, not just this repo:
# - `runs-on: ubuntu-latest` must match a label your registered Gitea
# runner (act_runner) actually advertises; there is no GitHub-hosted-
# runner equivalent, this is entirely self-hosted.
# - `uses: actions/checkout@v4` resolves against whatever action source
# your instance's runner is configured with (by default, Gitea Actions
# fetches actions from github.com unless DEFAULT_ACTIONS_URL is
# overridden); use `https://gitea.com/actions/checkout@v4` instead if
# your runner is configured to disallow GitHub as an action source.
name: CI
on:
push:
pull_request:
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build static + shared library
run: make all
- name: Run test suite
run: make test
- name: Build and run under AddressSanitizer + UndefinedBehaviorSanitizer
run: |
mkdir -p build/san
for f in src/*.c; do
cc -std=c11 -Wall -Wextra -O1 -g -fPIC -Iinclude -Isrc -D_GNU_SOURCE \
-fsanitize=address,undefined -c "$f" -o "build/san/$(basename "${f%.c}").o"
done
for t in tests/test_*.c; do
name=$(basename "${t%.c}")
cc -std=c11 -O1 -g -Iinclude -Isrc -D_GNU_SOURCE -fsanitize=address,undefined \
"$t" build/san/*.o -lpthread -o "build/san/$name"
"./build/san/$name"
done
- name: Build and run under ThreadSanitizer
run: |
mkdir -p build/tsan
for f in src/*.c; do
cc -std=c11 -Wall -Wextra -O1 -g -fPIC -Iinclude -Isrc -D_GNU_SOURCE \
-fsanitize=thread -c "$f" -o "build/tsan/$(basename "${f%.c}").o"
done
for t in tests/test_*.c; do
name=$(basename "${t%.c}")
cc -std=c11 -O1 -g -Iinclude -Isrc -D_GNU_SOURCE -fsanitize=thread \
"$t" build/tsan/*.o -lpthread -o "build/tsan/$name"
"./build/tsan/$name"
done