setup-lisp/.github/actions/setup/action.yml
2021-02-02 19:33:25 +03:00

125 lines
3.4 KiB
YAML

name: 'Install Roswell & Qlot'
inputs:
qlfile-template:
description: 'Jinja template for qlfile'
required: false
default: 'The Template'
lisp-system:
description: 'ASDF system to install and test'
required: false
default: ''
run-tests:
description: A command to run tests
required: false
default: |
qlot exec ros --eval '(asdf:test-system :{{ lisp-system }})' --quit
custom-code:
required: false
runs:
using: composite
steps:
- name: Current Env
shell: bash
run: |
echo ::group::Environment
echo "Current dir:"
pwd
echo "Environment Variables:"
env | sort -u
echo ::endgroup::
- name: Install Roswell
shell: bash
run: |
echo ::group::Install Roswell
if [[ "$OS" == "ubuntu-latest" ]]; then
sudo apt-get -y install git build-essential automake libcurl4-openssl-dev
fi
if [[ "$OS" == "macos-latest" ]]; then
brew install automake autoconf curl
fi
curl -L https://raw.githubusercontent.com/svetlyak40wt/roswell/patches/scripts/install-for-ci.sh | sh
echo $HOME/.roswell/bin >> $GITHUB_PATH
echo ::endgroup::
- name: Upgrade ASDF to the Latest Version
shell: bash
run: |
echo ::group::Upgrade ASDF
ros install asdf
echo ::endgroup::
- name: Install Qlot
shell: bash
run: |
echo ::group::Install Qlot
ros install qlot
echo .qlot/bin >> $GITHUB_PATH
echo ::endgroup::
# - name: Run a custom Roswell Script
# shell: ros -Q -- {0} "$@"
# run: |
# (progn
# (ros:ensure-asdf)
# #+quicklisp
# (ql:quickload '() :silent t))
# (defun main (args)
# (declare (ignore args))
# (format t "::group::Custom Roswell Script~%")
# (format t "Lisp: ~A ~A~%ASDF: ~A~%"
# (lisp-implementation-version)
# (lisp-implementation-type)
# (asdf:asdf-version))
# (format t "::endgroup::~%"))
- name: Run a custom Roswell Script
shell: ros -Q -- {0} "$@"
run: |
(progn
(ros:ensure-asdf)
#+quicklisp
(ql:quickload '() :silent t))
(defun main (args)
(declare (ignorable args))
(format t "::group::Custom Roswell Script New~%")
${{ inputs.custom-code }}
(format t "::endgroup::~%"))
# - name: Test
# shell: bash
# run: |
# echo ${{ inputs.qlfile-template }} > qlfile
# - name: Install Dependencies
# shell: bash
# run: |
# if [[ -e qlfile ]]; then
# rm -fr qlfile.lock
# else:
# if [[ "${QUICKLISP_DIST}" == 'ultralisp' ]]; then
# echo dist ultralisp http://dist.ultralisp.org/ >> qlfile
# fi
# fi
# qlot install
# - name: Install System
# shell: bash
# run: |
# if [[ "${QUICKLISP_DIST}" == 'quicklisp' ]]; then
# qlot exec ros install 40ants/defmain
# fi
# qlot exec ros install cl-info
# - name: Install System
# shell: bash
# run: |
# if [[ "${QUICKLISP_DIST}" == 'quicklisp' ]]; then
# qlot exec ros install 40ants/defmain
# fi
# qlot exec ros install cl-info