ci: Add GitHub Actions (test, lint, release) and issue templates
Some checks failed
Deploy-Agent-V15-Stdin / JOB-V15-STDIN (push) Failing after 2s

This commit is contained in:
2026-04-22 19:22:20 -04:00
parent 8d26d55c4f
commit 321d0fa852
5 changed files with 167 additions and 0 deletions

45
.github/workflows/lint.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Lint
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint:
runs-on: ubuntu-latest
container:
image: ubuntu:latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update && apt-get install -y --no-install-recommends \
git emacs-nox
- name: Check for forbidden patterns
run: |
grep -r "json\." --include="*.lisp" . && \
echo "ERROR: Found JSON usage in Lisp files" && exit 1 || \
echo "OK: No JSON in Lisp files"
- name: Check literate granularity
run: |
find . -name "*.org" -path "./skills/*" -exec grep -L "#+begin_src lisp" {} \; | \
grep -v "CLA\|CONTRIBUTING\|CHANGELOG" && \
echo "WARNING: Some skills lack lisp blocks" || \
echo "OK: All skills have lisp blocks"
- name: Verify .lisp files are generated
run: |
for f in library/gen/*.lisp; do
org="${f%.lisp}.org"
if [ -f "$org" ]; then
: # generated, OK
else
echo "WARNING: $f has no corresponding .org source"
fi
done

31
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Create tarball
run: |
git archive --format=tar.gz --prefix=opencortex-$(git describe --tags) HEAD -o opencortex.tar.gz
- name: Create zipball
run: |
git archive --format=zip --prefix=opencortex-$(git describe --tags) HEAD -o opencortex.zip
- name: Upload to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: |
opencortex.tar.gz
opencortex.zip
generate_release_notes: true

44
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
container:
image: statusoftech/sbcl:2.4.0
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
apt-get update && apt-get install -y --no-install-recommends \
git curl openssl make automake autoconf gcc clisp python3 python3-pip
- name: Install Quicklisp
run: |
curl -L https://beta.quicklisp.org/quicklisp.lisp -o /tmp/quicklisp.lisp
sbcl --non-interactive \
--load /tmp/quicklisp.lisp \
--eval '(quicklisp-quickstart:install :path "~/quicklisp/")' \
--eval '(ql:add-to-init-file)'
- name: Install ASDF systems
run: |
sbcl --non-interactive \
--eval '(ql:quickload :opencortex)'
env:
HOME: /root
- name: Run tests
run: |
sbcl --non-interactive \
--eval '(ql:quickload :opencortex/tests)' \
--eval '(uiop:quit 0)'
env:
HOME: /root