Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Release/v0.11

Release/v0.11 #228

Workflow file for this run

name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
env:
CACHE_VERSION: v1
jobs:
# Run tests for all packages
test:
name: Test All Packages (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
include:
- os: ubuntu-latest
container: ghcr.io/${{ github.repository }}/epsilon-ci:latest
- os: macos-latest
container: null
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup environment (Container)
if: matrix.container
run: |
apt-get update && apt-get install -y git tar gzip
git config --global --add safe.directory /__w/epsilon/epsilon
- name: Install SBCL (macOS)
if: runner.os == 'macOS'
run: brew install sbcl
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: |
src/*/target
.epsilon-cache
key: build-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('src/**/package.lisp', 'src/**/*.lisp') }}
restore-keys: |
build-${{ env.CACHE_VERSION }}-${{ runner.os }}-
- name: Run tests for all packages
run: |
echo "=== Testing all epsilon packages ==="
./epsilon --exec epsilon.release:selftest --format junit --file "target/TEST-epsilon-${{ runner.os }}.xml"
- name: Publish Test Report
uses: mikepenz/action-junit-report@v5
if: success() || failure()
with:
report_paths: '**/TEST-*.xml'
check_name: 'Test Results (${{ runner.os }})'
job_summary: true
detailed_summary: true
- name: Upload test results
uses: actions/upload-artifact@v4
if: success() || failure()
with:
name: test-results-${{ runner.os }}
path: target/TEST-*.xml
- name: Check test coverage
if: success()
run: |
echo "=== Test Summary ==="
# Show which packages were tested
find src -name "package.lisp" -type f | while read pkg; do
dir=$(dirname "$pkg")
module=$(basename $(dirname "$dir"))
if [ -d "$dir/tests" ]; then
echo "✓ $module - has tests"
else
echo "⚠ $module - no tests found"
fi
done