Skip to content

Merge pull request #3 from drzo/copilot/create-github-actions-workflows #7

Merge pull request #3 from drzo/copilot/create-github-actions-workflows

Merge pull request #3 from drzo/copilot/create-github-actions-workflows #7

Workflow file for this run

name: Elisp Test
on:
push:
branches: [ main, develop, "copilot/**" ]
paths:
- '**.el'
- 'test/**'
- '.github/workflows/elisp-test.yml'
- 'Cask'
pull_request:
branches: [ main, develop ]
paths:
- '**.el'
- 'test/**'
- '.github/workflows/elisp-test.yml'
- 'Cask'
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
emacs-version: ['29.1', '28.2', '27.2']
fail-fast: false
steps:
- name: Set environment variables
run: echo "ACTIONS_ALLOW_UNSECURE_COMMANDS=true" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Emacs
uses: purcell/setup-emacs@master
with:
version: ${{ matrix.emacs-version }}
- name: Setup Cask
uses: conao3/setup-cask@master
with:
version: snapshot
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Elisp dependencies
run: cask install
- name: Install Node.js test dependencies
run: npm ci
continue-on-error: true
- name: Run ERT tests
run: cask exec ert-runner
continue-on-error: true
- name: Run individual test files
run: |
for test_file in test/*-test.el; do
echo "Running $test_file..."
cask emacs --batch -L . -l "$test_file" \
-f ert-run-tests-batch-and-exit || echo "Warning: $test_file had failures"
done
continue-on-error: true
- name: Test OpenCog modules
run: |
cask emacs --batch -L . \
--eval "(progn \
(require 'aichat-opencog) \
(require 'aichat-ecan) \
(require 'aichat-pln) \
(require 'aichat-moses) \
(require 'aichat-esn) \
(message \"OpenCog modules loaded successfully\"))"
- name: Test SkinTwin modules
run: |
cask emacs --batch -L . \
--eval "(progn \
(require 'skintwin) \
(require 'skintwin-integration) \
(require 'skintwin-mode) \
(message \"SkinTwin modules loaded successfully\"))"
- name: Generate test coverage report
if: matrix.emacs-version == '29.1'
run: |
cask emacs --batch -L . \
--eval "(require 'undercover)" \
--eval "(undercover \"*.el\" (:exclude \"test/*.el\"))" \
-f ert-run-tests-batch-and-exit
continue-on-error: true
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: test-results-emacs-${{ matrix.emacs-version }}
path: |
test-results/
coverage/
retention-days: 30
integration-test:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Emacs
uses: purcell/setup-emacs@master
with:
version: '29.1'
- name: Setup Cask
uses: conao3/setup-cask@master
with:
version: snapshot
- name: Install dependencies
run: cask install
- name: Test Org-mode integration
run: |
cask emacs --batch -L . \
--eval "(require 'aichat-opencog-org)" \
--eval "(find-file \"README.org\")" \
--eval "(message \"Org integration test completed\")"
- name: Test full system initialization
run: |
cask emacs --batch -L . \
--eval "(progn \
(require 'aichat) \
(require 'skintwin) \
(message \"System initialized successfully\"))"