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

Skip to content

restore some caching tests (#129) #303

restore some caching tests (#129)

restore some caching tests (#129) #303

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
permissions:
contents: read
packages: write
checks: write
id-token: write
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 CI environment
run: ./scripts/ci-setup.sh
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: |
src/*/target
.epsilon-cache
modules/foreign/lib
key: build-${{ env.CACHE_VERSION }}-${{ runner.os }}-${{ hashFiles('src/**/package.lisp', 'src/**/*.lisp', 'modules/foreign/c/*') }}
restore-keys: |
build-${{ env.CACHE_VERSION }}-${{ runner.os }}-
- name: Verify OpenSSL setup
run: |
echo "=== OpenSSL Configuration ==="
openssl version
echo "=== Checking for OpenSSL libraries ==="
# On Linux
if [ -f /usr/lib/x86_64-linux-gnu/libssl.so ]; then
echo "Found libssl.so"
ls -la /usr/lib/x86_64-linux-gnu/libssl* | head -5
fi
# On macOS
if [ -d /opt/homebrew/opt/openssl@3 ]; then
echo "Found Homebrew OpenSSL 3"
ls -la /opt/homebrew/opt/openssl@3/lib/libssl* | head -5
elif [ -d /usr/local/opt/openssl@3 ]; then
echo "Found Homebrew OpenSSL 3 (Intel)"
ls -la /usr/local/opt/openssl@3/lib/libssl* | head -5
fi
- name: Verify SQLite setup
run: |
echo "=== SQLite Configuration ==="
sqlite3 --version
echo "=== Checking for SQLite libraries ==="
# On Linux
if [ -f /usr/lib/x86_64-linux-gnu/libsqlite3.so ]; then
echo "Found libsqlite3.so"
ls -la /usr/lib/x86_64-linux-gnu/libsqlite3* | head -5
fi
# On macOS - SQLite is bundled with the system
if [ "${{ runner.os }}" = "macOS" ]; then
echo "macOS system SQLite libraries:"
# Check common locations for system SQLite
if [ -f /usr/lib/libsqlite3.dylib ]; then
echo "Found system libsqlite3.dylib"
ls -la /usr/lib/libsqlite3* 2>/dev/null | head -5 || true
fi
# Also check SDK location
if [ -d /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib ]; then
echo "Found SDK SQLite libraries:"
ls -la /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/libsqlite3* 2>/dev/null | head -5 || true
fi
# Check with otool where sqlite3 binary links to
echo "SQLite3 binary links to:"
otool -L $(which sqlite3) | grep sqlite || true
fi
- name: Run smoke tests
run: ./epsilon --exec epsilon.release:run-smoke-tests
- name: Run all module tests
run: |
# Set library paths for OpenSSL on macOS
if [ "${{ runner.os }}" = "macOS" ]; then
if [ -d /opt/homebrew/opt/openssl@3 ]; then
export DYLD_LIBRARY_PATH="/opt/homebrew/opt/openssl@3/lib:${DYLD_LIBRARY_PATH:-}"
elif [ -d /usr/local/opt/openssl@3 ]; then
export DYLD_LIBRARY_PATH="/usr/local/opt/openssl@3/lib:${DYLD_LIBRARY_PATH:-}"
fi
fi
./epsilon --exec epsilon.release:test --format junit --output "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