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 2~%") (let ((custom-code "${{ inputs.custom-code | escape }}")) (if (string= custom-code "") (format t "No custom code~%") (uiop:eval-input 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