diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml new file mode 100644 index 0000000..268d9a2 --- /dev/null +++ b/.github/workflows/continuous-integration.yaml @@ -0,0 +1,13 @@ +name: 'Continuous Integration' +on: + - workflow_dispatch + - push +jobs: + continuous-integration: + uses: melusina-org/reusable/.github/workflows/lisp-continuous-integration.yaml@main + with: + main-system: 'org.melusina.confidence' + testsuite-system: 'org.melusina.confidence/testsuite' + testsuite-entrypoint: 'run-all-tests' + linter-system: 'org.melusina.confidence/development' + linter-entrypoint: 'lint' diff --git a/.github/workflows/make-documentation.yaml b/.github/workflows/make-documentation.yaml deleted file mode 100644 index 1ff314c..0000000 --- a/.github/workflows/make-documentation.yaml +++ /dev/null @@ -1,36 +0,0 @@ -name: 'Make Documentation' -on: - - push - - workflow_dispatch - -jobs: - make-documentation: - runs-on: ubuntu-latest - timeout-minutes: 60 - steps: - - uses: actions/checkout@v1 - - name: 'Setup Ubuntu' - run: | - sudo libexec/setup/ubuntu - - name: 'Setup Quicklisp' - run: | - libexec/setup/quicklisp - - name: 'Run testsuite' - run: | - development/testsuite - - name: 'Make documentation' - run: | - development/makedoc - - uses: actions/upload-artifact@v3 - with: - name: org.melusina.confidence.html - path: obj/makedoc/org.melusina.confidence.html - - uses: actions/upload-artifact@v3 - with: - name: org.melusina.confidence.info - path: obj/makedoc/org.melusina.confidence.info - - uses: actions/upload-artifact@v3 - with: - name: org.melusina.confidence.pdf - path: obj/makedoc/org.melusina.confidence.pdf - diff --git a/.github/workflows/run-testsuite-on-big-sur.yaml b/.github/workflows/run-testsuite-on-big-sur.yaml deleted file mode 100644 index fd3588f..0000000 --- a/.github/workflows/run-testsuite-on-big-sur.yaml +++ /dev/null @@ -1,27 +0,0 @@ -name: 'Run testsuite on MacOS BigSur' -on: - - workflow_dispatch - - push -jobs: - run-testsuite: - runs-on: 'macos-11' - permissions: - contents: read - steps: - - name: 'Checkout repository' - uses: actions/checkout@v3 - - name: 'Install MacPorts' - id: 'macports' - uses: melusina-org/gha-install-macports@v1 - - name: 'Install Quicklisp in CI environment' - run: >- - sbcl - --load '${{ steps.macports.outputs.prefix }}/share/cl-quicklisp/quicklisp.lisp' - --eval '(quicklisp-quickstart:install)' - --eval '(ql-util:without-prompting (ql:add-to-init-file))' - --quit - - name: 'Add Workspace to Quicklisp local project directories' - run: >- - printf '\n(pushnew \043p\"%s\" ql:*local-project-directories*)\n' "${GITHUB_WORKSPACE}" >> ~/.sbclrc - - name: 'Run the testsuite' - run: 'development/testsuite' diff --git a/example/example.lisp b/example/example.lisp index 2f4de7c..b5d0b8c 100644 --- a/example/example.lisp +++ b/example/example.lisp @@ -3,7 +3,7 @@ ;;;; Confidence (https://github.com/melusina-org/cl-confidence) ;;;; This file is part of Confidence. ;;;; -;;;; Copyright © 2019–2022 Michaël Le Barbier +;;;; Copyright © 2019–2023 Michaël Le Barbier ;;;; All rights reserved. ;;;; This file must be used under the terms of the MIT License. diff --git a/libexec/lisp/development.lisp b/libexec/lisp/development.lisp new file mode 100644 index 0000000..8245962 --- /dev/null +++ b/libexec/lisp/development.lisp @@ -0,0 +1,73 @@ +;;;; development.lisp — Project Development for El Cid + +;;;; Confidence (https://github.com/melusina-org/cl-confidence) +;;;; This file is part of Confidence. +;;;; +;;;; Copyright © 2019–2023 Michaël Le Barbier +;;;; All rights reserved. + +;;;; This file must be used under the terms of the MIT License. +;;;; This source file is licensed as described in the file LICENSE, which +;;;; you should have received as part of this distribution. The terms +;;;; are also available at https://opensource.org/licenses/MIT + +(defpackage #:org.melusina.confidence/development + (:use #:cl) + (:local-nicknames + (#:atelier #:org.melusina.atelier)) + (:export + #:lint + #+quicklisp + #:reload)) + +(in-package #:org.melusina.confidence/development) + +(defun system-relative-pathname (pathname) + (flet ((system-source-directory () + (asdf:system-source-directory #.(string-downcase (package-name *package*))))) + (merge-pathnames pathname (system-source-directory)))) + +(defun system-relative-pathnames (&rest pathnames) + (mapcar #'system-relative-pathname pathnames)) + +(defparameter *parameter-bindings* + '((:copyright-holder . "Michaël Le Barbier") + (:copyright-year . "2019–2023") + (:project-filename . "org.melusina.confidence") + (:project-name . "Confidence") + (:project-description . "A Simple Interactive Test Framework for Common Lisp") + (:project-long-description . + #.(concatenate 'string + "Confidence is a test framework for Common Lisp that focuses on simplicty. " + "It avoids bureacracy and makes it easy to work interactively, without " + "a complicated setup, and with explicit functions and decisions.")) + (:homepage . "https://github.com/melusina-org/cl-confidence") + (:license . :mit))) + +(defun lint () + (let ((atelier:*parameter-bindings* *parameter-bindings*)) + (atelier:lint + (system-relative-pathnames + #p"org.melusina.confidence.asd" + #p"doc" + #p"example" + #p"src" + #p"subr" + #p"testsuite" + #p"libexec/lisp/development.lisp")))) + +#+quicklisp +(defun reload () + (ql:quickload '("org.melusina.atelier" + "org.melusina.confidence" + "org.melusina.confidence/development"))) + + +;;;; +;;;; Command Stock +;;;; + +#+nil +(org.melusina.confidence/development:reload) + +;;;; End of file `development.lisp' diff --git a/libexec/lisp/setup.lisp b/libexec/lisp/setup.lisp deleted file mode 100644 index 64cf999..0000000 --- a/libexec/lisp/setup.lisp +++ /dev/null @@ -1,38 +0,0 @@ -;;;; setup.lisp — Setup for Confidence Atelier Project - -;;;; Confidence (https://github.com/melusina-org/cl-confidence) -;;;; This file is part of Confidence. -;;;; -;;;; Copyright © 2019–2023 Michaël Le Barbier -;;;; All rights reserved. - -;;;; This file must be used under the terms of the MIT License. -;;;; This source file is licensed as described in the file LICENSE, which -;;;; you should have received as part of this distribution. The terms -;;;; are also available at https://opensource.org/licenses/MIT - -(in-package #:cl-user) - -;;; -;;; Atelier -;;; - -(ql:quickload "org.melusina.atelier" :silent t) - -(org.melusina.atelier:initialise) - -(setf org.melusina.atelier:*parameter-bindings* - '((:copyright-holder . "Michaël Le Barbier") - (:copyright-year . "2019–2023") - (:project-filename . "org.melusina.confidence") - (:project-name . "Confidence") - (:project-description . "A Simple Interactive Test Framework for Common Lisp") - (:project-long-description . - #.(concatenate 'string - "Confidence is a test framework for Common Lisp that focuses on simplicty. " - "It avoids bureacracy and makes it easy to work interactively, without " - "a complicated setup, and with explicit functions and decisions.")) - (:homepage . "https://github.com/melusina-org/cl-confidence") - (:license . :mit))) - -;;;; End of file `setup.lisp' diff --git a/org.melusina.confidence.asd b/org.melusina.confidence.asd index 32a7832..6401164 100644 --- a/org.melusina.confidence.asd +++ b/org.melusina.confidence.asd @@ -39,4 +39,13 @@ (:file "testcase") (:file "entrypoint"))))) +(asdf:defsystem #:org.melusina.confidence/development + :description "Development tools for Confidence" + :author "Michaël Le Barbier" + :license "MIT License" + :depends-on (#:org.melusina.atelier) + :components + ((:module "libexec/lisp" + :components ((:file "development"))))) + ;;;; End of file `org.melusina.confidence.asd'