Skip to content

Docker Arch Linux image with Common Lisp implementations

License

Notifications You must be signed in to change notification settings

yitzchak/archlinux-cl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

archlinux-cl

Arch Linux Docker image with Common Lisp implementations. Current implementations are:

The image tag is ghcr.io/yitzchak/archlinux-cl:latest

GitHub Workflows

The image can be used to test Common Lisp systems using GitHub workflows. To aid with this there are three scripts which setup the envionment or aid with calling the specific Lisp implementation.

The first is make-rc which ensures that that are RC files for all the provided Lisp implementations in the home directory. This is needed because GitHub makes a new directory when the container starts and sets the environment variable HOME to it.

The second is asdf-add which adds the current folder to the ASDF registery. This avoids the difficulty of attempting to clone the repository into ~/quicklisp/local-projects.

The final script is lisp which executes a specified Lisp implementation using the appropriate eval and load flags. It accepts the following arguments:

  • -i <name> — use the Lisp implementation . This should be the first argument.
  • -e <form> — evaluate the
  • -l <file> — load the
  • -q — quit

A simple example of a workflow file is given below that tests a system named fubar which has the tests located in a system named fubar/test

name: test

on:
  workflow_dispatch:
  push:
    branches: [ main ]
  pull_request:

jobs:
  test:
    name: Test
    defaults:
      run:
        shell: bash -l {0}
    strategy:
      matrix:
        lisp:
        - abcl
        - ccl
        - clasp
        - clisp
        - cmucl
        - ecl
        - mkcl
        - sbcl
      fail-fast: false
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/yitzchak/archlinux-cl:latest
    steps:
    - name: Checkout Repository
      uses: actions/checkout@v3
    - name: Setup Lisp Environment
      run: |
        make-rc
        asdf-add
    - name: Run Tests
      run: |
        lisp -i ${{ matrix.lisp }} -e "(ql:quickload :fubar/test)" -e "(asdf:test-system :fubar)"

About

Docker Arch Linux image with Common Lisp implementations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages