Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the 40ants-ci Reference Manual, version 0.1.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Sun May 15 03:32:30 2022 GMT+0.
• Introduction | What 40ants-ci is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
This is a small utility, which can generate GitHub workflows for Common Lisp projects.
It generates workflow for running tests and building docs. These workflows
use 40ants/run-tests and 40ants/build-docs
actions and SBLint
to check code for compilation errors.
Version: 0.1.0
Description: A tool simplify continuous deployment for Common Lisp projects.
Licence: BSD
Author: Alexander Artemenko
Homepage: https://40ants.com/ci/
Source control: GIT
This system hides all entrails related to caching.
Includes a few ready to use job types.
Custom job types can be defined and distributed as separate ASDF
systems.
You don't have to write YAML
anymore!
This system allows you to define workflows in the lisp code. The best way is to make these
definitions a part of your ASDF
system. This way 40ants-ci
will be able to
automatically understand for which system it builds a workflow.
Each workflow consists of jobs and each job is a number of steps.
There are three predefine types of jobs and you can create your own. Predefined jobs
allows to reuse steps in multiple CL
libraries.
In next examples, I'll presume you are writing code in a file which is the part
of the package inferred ASDF
system EXAMPLE/CI
. A file should have the following header:
(defpackage #:example/ci
(:use #:cl)
(:import-from #:40ants-ci/workflow
#:defworkflow)
(:import-from #:40ants-ci/jobs/linter)
(:import-from #:40ants-ci/jobs/run-tests)
(:import-from #:40ants-ci/jobs/docs))
The simplest job type is linter. It loads a
(defworkflow linter
:on-pull-request t
:jobs ((40ants-ci/jobs/linter:linter)))
When you'll hit C-c C-c
on this definition,
it will generate .github/workflows/linter.yml
with following content:
{
"name": "LINTER",
"on": {
"pull_request": null
},
"jobs": {
"linter": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example"
}
},
{
"name": "Install SBLint",
"run": "qlot exec ros install cxxxr/sblint",
"shell": "bash"
},
{
"name": "Run Linter",
"run": "qlot exec sblint example.asd",
"shell": "bash"
}
]
}
}
}
Here you can see, a few steps in the job:
Checkout the code.
Install Roswell & Qlot using 40ants/setup-lisp action.
Install SBLint
.
Run linter for example.asd
.
Another interesting thing is that this workflow automatically uses ubuntu-latest
OS
,
Quicklisp
and sbcl-bin
Lisp implementation. Later I'll show you how to redefine these settings.
This job is similar to linter, but instead of SBL
int it runs
Lisp Critic.
Lisp Critic is a program which advices how to make you Common Lisp code more idiomatic, readable and performant. Also, sometimes it might catch logical errors in the code.
Here is how you can add this job type in your workflow:
(defworkflow ci
:on-pull-request t
:jobs ((40ants-ci/jobs/critic:critic)))
Also, you might combine this job together with others, for example, with linter:
(defworkflow ci
:on-pull-request t
:jobs ((40ants-ci/jobs/linter:linter)
(40ants-ci/jobs/critic:critic)))
and they will be executed in parallel. See docs on 40ants-ci/jobs/critic:critic
function
to learn about supported arguments.
Another interesting job type is 40ants-ci/jobs/run-tests:run-tests
(1
2
).
When using this job type, make sure, your system
runs tests on (ASDF:TEST-SYSTEM :system-name)
call
and signals error if something went wrong.
(defworkflow ci
:on-push-to "master"
:by-cron "0 10 * * 1"
:on-pull-request t
:jobs ((40ants-ci/jobs/run-tests:run-tests
:coverage t)))
Here I've added a few options to the workflow:
by-cron
- sets a schedule.
on-push-to
- defines a branch or branches to track.
It will generate .github/workflows/ci.yml
with following content:
{
"name": "CI",
"on": {
"push": {
"branches": [
"master"
]
},
"pull_request": null,
"schedule": [
{
"cron": "0 10 * * 1"
}
]
},
"jobs": {
"run-tests": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example"
}
},
{
"name": "Run Tests",
"uses": "40ants/run-tests@v2",
"with": {
"asdf-system": "example",
"coveralls-token": "${{ secrets.github_token }}"
}
}
]
}
}
}
The result is similar to the workflow generated for Linter, but uses 40ants/setup-lisp action at the final step.
Also, I've passed an option :coverage t
to the job. Thus coverage
report will be uploaded to Coveralls.io automatically.
Lisp has many implementations and can be used on multiple platforms. Thus
it is a good idea to test our software on many combinations of OS
and lisp
implementations. Workflow generator makes this very easy.
Here is an example of workflow definition with three dimentional matrix.
It not only tests a library under different lisps and OS
, but also checks
if it works with the latest Quicklisp and Ultralisp distributions:
(defworkflow ci
:on-pull-request t
:jobs ((run-tests
:os ("ubuntu-latest"
"macos-latest")
:quicklisp ("quicklisp"
"ultralisp")
:lisp ("sbcl-bin"
"ccl-bin"
"allegro"
"clisp"
"cmucl")
:exclude (;; Seems allegro is does not support 64bit OSX.
;; Unable to install it using Roswell:
;; alisp is not executable. Missing 32bit glibc?
(:os "macos-latest" :lisp "allegro")))))
Besides a build matrix, you might specify a multiple jobs of the same type, but with different parameters:
(defworkflow ci
:on-push-to "master"
:on-pull-request t
:jobs ((run-tests
:lisp "sbcl-bin")
(run-tests
:lisp "ccl-bin")
(run-tests
:lisp "allegro")))
This will generate a workflow with three jobs: "run-tests", "run-tests-2" and "run-tests-3".
Meaningful names might be specified as well:
(defworkflow ci
:on-push-to "master"
:on-pull-request t
:jobs ((run-tests
:name "test-on-sbcl"
:lisp "sbcl-bin")
(run-tests
:name "test-on-ccl"
:lisp "ccl-bin")
(run-tests
:name "test-on-allegro"
:lisp "allegro")))
Here is how these jobs will look like in the GitHub interface:
Third predefined job type is 40ants-ci/jobs/docs:build-docs
(1
2
).
It uses 40ants/build-docs
action and will work only if your ASDF
system uses a documentation builder supported by
40ants/docs-builder.
To build docs on every push to master, just use this code:
(defworkflow docs
:on-push-to "master"
:jobs ((40ants-ci/jobs/docs:build-docs)))
It will generate .github/workflows/docs.yml
with following content:
{
"name": "DOCS",
"on": {
"push": {
"branches": [
"master"
]
}
},
"jobs": {
"build-docs": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example",
"qlfile-template": ""
}
},
{
"name": "Build Docs",
"uses": "40ants/build-docs@v1",
"with": {
"asdf-system": "example"
}
}
]
}
}
}
To significantly speed up our tests, we can cache installed Roswell, Qlot and Common Lisp fasl files.
To accomplish this task, you don't need to dig into GitHub's docs anymore!
Just add one line :cache t
to your workflow definition:
(defworkflow docs
:on-push-to "master"
:cache t
:jobs ((40ants-ci/jobs/docs:build-docs)))
Here is the diff of the generated workflow file. It shows steps, added automatically:
modified .github/workflows/docs.yml
@@ -20,13 +20,40 @@
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
+ {
+ "name": "Grant All Perms to Make Cache Restoring Possible",
+ "run": "sudo mkdir -p /usr/local/etc/roswell\n sudo chown \"${USER}\" /usr/local/etc/roswell\n # Here the ros binary will be restored:\n sudo chown \"${USER}\" /usr/local/bin",
+ "shell": "bash"
+ },
+ {
+ "name": "Get Current Month",
+ "id": "current-month",
+ "run": "echo \"::set-output name=value::$(date -u \"+%Y-%m\")\"",
+ "shell": "bash"
+ },
+ {
+ "name": "Cache Roswell Setup",
+ "id": "cache",
+ "uses": "actions/cache@v2",
+ "with": {
+ "path": "qlfile\n qlfile.lock\n /usr/local/bin/ros\n ~/.cache/common-lisp/\n ~/.roswell\n /usr/local/etc/roswell\n .qlot",
+ "key": "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-ubuntu-latest-quicklisp-sbcl-bin-${{ hashFiles('qlfile.lock') }}"
+ }
+ },
+ {
+ "name": "Restore Path To Cached Files",
+ "run": "echo $HOME/.roswell/bin >> $GITHUB_PATH\n echo .qlot/bin >> $GITHUB_PATH",
+ "shell": "bash",
+ "if": "steps.cache.outputs.cache-hit == 'true'"
+ },
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "40ants-ci",
"qlfile-template": ""
- }
+ },
+ "if": "steps.cache.outputs.cache-hit != 'true'"
},
{
TODO
: I have to write a few chapters with details on additional job's parameters
and a way how to create new job types.
40ants-ci:generate
system &key pathGenerates GitHub workflow for given ASDF
system.
This function searches workflow definitions in all packages
of the given ASDF
system.
If PATH
argument is not given, workflow files will be written
to .github/workflow/ relarive to the SYSTEM
.
40ants-ci/jobs/run-tests:run-tests
&rest rest &key coverage qlfile asdf-system asdf-version os quicklisp lisp exclude customCreates a job step of class run-tests
.
40ants-ci/jobs/run-tests:run-tests
(lisp-job)This job test runs tests for a given ASDF
system.
40ants-ci/jobs/docs:build-docs
&key asdf-system asdf-version (error-on-warnings t)Creates a job of class build-docs
.
40ants-ci/jobs/docs:build-docs
(lisp-job)Builds documentation and uploads it to GitHub using "40ants/build-docs" github action.
40ants-ci/jobs/linter:linter
&key asdf-systems asdf-versionCreates a job which will run SBL
int for given ASDF
systems.
If no ASD
files given, it will use all ASD
files from
the current ASDF
system.
40ants-ci/jobs/linter:linter
&key asdf-systems asdf-versionCreates a job which will run SBL
int for given ASDF
systems.
If no ASD
files given, it will use all ASD
files from
the current ASDF
system.
40ants-ci/jobs/critic:critic
(lisp-job)40ants-ci/jobs/critic:critic
&key asdf-systems asdf-version ignore-critiquesCreates a job which will run Lisp Critic for given ASDF
systems.
If argument ASDF-SYSTEMS
is NIL
, it will use ASDF
system
to which current lisp file is belong.
You may also provide ASDF-VERSION
argument. It should be
a string. By default, the latest ASDF
version will be used.
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
Next: The 40ants-ci/core system, Previous: Systems, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
A tool simplify continuous deployment for Common Lisp projects.
<a id="x-2840ANTS-CI-3A-40README-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
# 40Ants-CI - Github Workflow Generator
[][de0b]
This is a small utility, which can generate GitHub workflows for Common Lisp
projects.
It generates workflow for running tests and building docs. These workflows
use [40ants/run-tests][8469] and [40ants/build-docs][b882]
actions and [‘SBLint‘][2f94] to check code for compilation errors.
<a id="40-ants-ci-asdf-system-details"></a>
## 40ANTS-CI ASDF System Details
* Version: 0.1.0
* Description: A tool simplify continuous deployment for Common Lisp projects.
* Licence: ‘BSD‘
* Author: Alexander Artemenko
* Homepage: [https://40ants.com/ci/][3f72]
* Source control: [GIT][e681]
<a id="x-2840ANTS-CI-3A-3A-40REASONS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
## Reasons to Use
* This system hides all entrails related to caching.
* Includes a few ready to use job types.
* Custom job types can be defined and distributed as separate ‘ASDF‘ systems.
* You don’t have to write ‘YAML‘ anymore!
<a id="x-2840ANTS-CI-3A-3A-40QUICKSTART-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
## Quickstart
This system allows you to define workflows in the lisp code. The best way is to make these
definitions a part of your ‘ASDF‘ system. This way [‘40ants-ci‘][b171] will be able to
automatically understand for which system it builds a workflow.
Each workflow consists of jobs and each job is a number of steps.
There are three predefine types of jobs and you can create your own. Predefined jobs
allows to reuse steps in multiple ‘CL‘ libraries.
In next examples, I’ll presume you are writing code in a file which is the part
of the package inferred ‘ASDF‘ system ‘EXAMPLE/CI‘. A file should have the following header:
“‘lisp
(defpackage #:example/ci
(:use #:cl)
(:import-from #:40ants-ci/workflow
#:defworkflow)
(:import-from #:40ants-ci/jobs/linter)
(:import-from #:40ants-ci/jobs/run-tests)
(:import-from #:40ants-ci/jobs/docs))
“‘
<a id="x-2840ANTS-CI-3A-3A-40JOB-TYPES-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
### Job Types
<a id="x-2840ANTS-CI-3A-3A-40LINTER-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
#### Linter
The simplest job type is linter. It loads a
“‘lisp
(defworkflow linter
:on-pull-request t
:jobs ((40ants-ci/jobs/linter:linter)))
“‘
When you’ll hit ‘C-c C-c‘ on this definition,
it will generate ‘.github/workflows/linter.yml‘ with following content:
“‘json
{
"name": "LINTER",
"on": {
"pull_request": null
},
"jobs": {
"linter": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example"
}
},
{
"name": "Install SBLint",
"run": "qlot exec ros install cxxxr/sblint",
"shell": "bash"
},
{
"name": "Run Linter",
"run": "qlot exec sblint example.asd",
"shell": "bash"
}
]
}
}
}
“‘
Here you can see, a few steps in the job:
1. Checkout the code.
2. Install Roswell & Qlot using [40ants/setup-lisp][8de1] action.
3. Install [‘SBLint‘][2f94].
4. Run linter for ‘example.asd‘.
Another interesting thing is that this workflow automatically uses ‘ubuntu-latest‘ ‘OS‘,
‘Quicklisp‘ and ‘sbcl-bin‘ Lisp implementation. Later I’ll show you how to redefine these settings.
<a id="x-2840ANTS-CI-3A-3A-40CRITIC-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
#### Critic
This job is similar to linter, but instead of ‘SBL‘int it runs
[Lisp Critic][2100].
Lisp Critic is a program which advices how to make you Common Lisp code more
idiomatic, readable and performant. Also, sometimes it might catch logical
errors in the code.
Here is how you can add this job type in your workflow:
“‘lisp
(defworkflow ci
:on-pull-request t
:jobs ((40ants-ci/jobs/critic:critic)))
“‘
Also, you might combine this job together with others, for example,
with linter:
“‘lisp
(defworkflow ci
:on-pull-request t
:jobs ((40ants-ci/jobs/linter:linter)
(40ants-ci/jobs/critic:critic)))
“‘
and they will be executed in parallel. See docs on [‘40ants-ci/jobs/critic:critic‘][484a] function
to learn about supported arguments.
<a id="x-2840ANTS-CI-3A-3A-40RUN-TESTS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
#### Running Tests
Another interesting job type is ‘40ants-ci/jobs/run-tests:run-tests‘ ([‘1‘][6cb7] [‘2‘][e35d]).
When using this job type, make sure, your system
runs tests on ‘(ASDF:TEST-SYSTEM :system-name)‘ call
and signals error if something went wrong.
“‘lisp
(defworkflow ci
:on-push-to "master"
:by-cron "0 10 * * 1"
:on-pull-request t
:jobs ((40ants-ci/jobs/run-tests:run-tests
:coverage t)))
“‘
Here I’ve added a few options to the workflow:
* ‘by-cron‘ - sets a schedule.
* ‘on-push-to‘ - defines a branch or branches to track.
It will generate ‘.github/workflows/ci.yml‘ with following content:
“‘json
{
"name": "CI",
"on": {
"push": {
"branches": [
"master"
]
},
"pull_request": null,
"schedule": [
{
"cron": "0 10 * * 1"
}
]
},
"jobs": {
"run-tests": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example"
}
},
{
"name": "Run Tests",
"uses": "40ants/run-tests@v2",
"with": {
"asdf-system": "example",
"coveralls-token": "${{ secrets.github_token }}"
}
}
]
}
}
}
“‘
The result is similar to the workflow generated for Linter,
but uses [40ants/setup-lisp][59d7] action
at the final step.
Also, I’ve passed an option ‘:coverage t‘ to the job. Thus coverage
report will be uploaded to [Coveralls.io][b60c] automatically.
<a id="x-2840ANTS-CI-3A-3A-40MATRIX-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
##### Defining a test Matrix
Lisp has many implementations and can be used on multiple platforms. Thus
it is a good idea to test our software on many combinations of ‘OS‘ and lisp
implementations. Workflow generator makes this very easy.
Here is an example of workflow definition with three dimentional matrix.
It not only tests a library under different lisps and ‘OS‘, but also checks
if it works with the latest Quicklisp and Ultralisp distributions:
“‘lisp
(defworkflow ci
:on-pull-request t
:jobs ((run-tests
:os ("ubuntu-latest"
"macos-latest")
:quicklisp ("quicklisp"
"ultralisp")
:lisp ("sbcl-bin"
"ccl-bin"
"allegro"
"clisp"
"cmucl")
:exclude (;; Seems allegro is does not support 64bit OSX.
;; Unable to install it using Roswell:
;; alisp is not executable. Missing 32bit glibc?
(:os "macos-latest" :lisp "allegro")))))
“‘
<a id="x-2840ANTS-CI-3A-3A-40MULTIPLE-JOBS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
##### Multiple jobs
Besides a build matrix, you might specify a multiple jobs of the same type,
but with different parameters:
“‘lisp
(defworkflow ci
:on-push-to "master"
:on-pull-request t
:jobs ((run-tests
:lisp "sbcl-bin")
(run-tests
:lisp "ccl-bin")
(run-tests
:lisp "allegro")))
“‘
This will generate a workflow with three jobs: "run-tests", "run-tests-2" and "run-tests-3".
Meaningful names might be specified as well:
“‘lisp
(defworkflow ci
:on-push-to "master"
:on-pull-request t
:jobs ((run-tests
:name "test-on-sbcl"
:lisp "sbcl-bin")
(run-tests
:name "test-on-ccl"
:lisp "ccl-bin")
(run-tests
:name "test-on-allegro"
:lisp "allegro")))
“‘
Here is how these jobs will look like in the GitHub interface:

<a id="x-2840ANTS-CI-3A-3A-40BUILD-DOCS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
#### Building Docs
Third predefined job type is ‘40ants-ci/jobs/docs:build-docs‘ ([‘1‘][1ddb] [‘2‘][13b8]).
It uses [40ants/build-docs][613f]
action and will work only if your ‘ASDF‘ system uses a documentation builder supported by
[40ants/docs-builder][f2be].
To build docs on every push to master, just use this code:
“‘lisp
(defworkflow docs
:on-push-to "master"
:jobs ((40ants-ci/jobs/docs:build-docs)))
“‘
It will generate ‘.github/workflows/docs.yml‘ with following content:
“‘json
{
"name": "DOCS",
"on": {
"push": {
"branches": [
"master"
]
}
},
"jobs": {
"build-docs": {
"runs-on": "ubuntu-latest",
"env": {
"OS": "ubuntu-latest",
"QUICKLISP_DIST": "quicklisp",
"LISP": "sbcl-bin"
},
"steps": [
{
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "example",
"qlfile-template": ""
}
},
{
"name": "Build Docs",
"uses": "40ants/build-docs@v1",
"with": {
"asdf-system": "example"
}
}
]
}
}
}
“‘
<a id="x-2840ANTS-CI-3A-3A-40CACHING-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
### Caching
To significantly speed up our tests, we can cache installed Roswell,
Qlot and Common Lisp fasl files.
To accomplish this task, you don’t need to dig into GitHub’s docs anymore!
Just add one line ‘:cache t‘ to your workflow definition:
“‘lisp
(defworkflow docs
:on-push-to "master"
:cache t
:jobs ((40ants-ci/jobs/docs:build-docs)))
“‘
Here is the diff of the generated workflow file. It shows steps, added automatically:
“‘diff
modified .github/workflows/docs.yml
@@ -20,13 +20,40 @@
"name": "Checkout Code",
"uses": "actions/checkout@v1"
},
+ {
+ "name": "Grant All Perms to Make Cache Restoring Possible",
+ "run": "sudo mkdir -p /usr/local/etc/roswell\n sudo chown \"${USER}\" /usr/local/etc/roswell\n # Here the ros binary will be restored:\n sudo chown \"${USER}\" /usr/local/bin",
+ "shell": "bash"
+ },
+ {
+ "name": "Get Current Month",
+ "id": "current-month",
+ "run": "echo \"::set-output name=value::$(date -u \"+%Y-%m\")\"",
+ "shell": "bash"
+ },
+ {
+ "name": "Cache Roswell Setup",
+ "id": "cache",
+ "uses": "actions/cache@v2",
+ "with": {
+ "path": "qlfile\n qlfile.lock\n /usr/local/bin/ros\n ~/.cache/common-lisp/\n ~/.roswell\n /usr/local/etc/roswell\n .qlot",
+ "key": "${{ steps.current-month.outputs.value }}-${{ env.cache-name }}-ubuntu-latest-quicklisp-sbcl-bin-${{ hashFiles(’qlfile.lock’) }}"
+ }
+ },
+ {
+ "name": "Restore Path To Cached Files",
+ "run": "echo $HOME/.roswell/bin >> $GITHUB_PATH\n echo .qlot/bin >> $GITHUB_PATH",
+ "shell": "bash",
+ "if": "steps.cache.outputs.cache-hit == ’true’"
+ },
{
"name": "Setup Common Lisp Environment",
"uses": "40ants/setup-lisp@v2",
"with": {
"asdf-system": "40ants-ci",
"qlfile-template": ""
- }
+ },
+ "if": "steps.cache.outputs.cache-hit != ’true’"
},
{
“‘
<a id="x-2840ANTS-CI-3A-3A-40DETAILS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>
## Details
‘TODO‘: I have to write a few chapters with details on additional job’s parameters
and a way how to create new job types.
<a id="x-2840ANTS-CI-3AGENERATE-20FUNCTION-29"></a>
### [function](b4a6) ‘40ants-ci:generate‘ system &key path
Generates GitHub workflow for given ‘ASDF‘ system.
This function searches workflow definitions in all packages
of the given ‘ASDF‘ system.
If ‘PATH‘ argument is not given, workflow files will be written
to .github/workflow/ relarive to the ‘SYSTEM‘.
<a id="x-2840ANTS-CI-2FJOBS-2FRUN-TESTS-3ARUN-TESTS-20FUNCTION-29"></a>
### [function](b562) ‘40ants-ci/jobs/run-tests:run-tests‘ &rest rest &key coverage qlfile asdf-system asdf-version os quicklisp lisp exclude custom
Creates a job step of class [‘run-tests‘][6cb7].
<a id="x-2840ANTS-CI-2FJOBS-2FRUN-TESTS-3ARUN-TESTS-20CLASS-29"></a>
### [class](6107) ‘40ants-ci/jobs/run-tests:run-tests‘ (lisp-job)
This job test runs tests for a given ‘ASDF‘ system.
<a id="x-2840ANTS-CI-2FJOBS-2FDOCS-3ABUILD-DOCS-20FUNCTION-29"></a>
### [function](0ab0) ‘40ants-ci/jobs/docs:build-docs‘ &key asdf-system asdf-version (error-on-warnings t)
Creates a job of class [‘build-docs‘][1ddb].
<a id="x-2840ANTS-CI-2FJOBS-2FDOCS-3ABUILD-DOCS-20CLASS-29"></a>
### [class](cd8d) ‘40ants-ci/jobs/docs:build-docs‘ (lisp-job)
Builds documentation and uploads it to GitHub using ["40ants/build-docs" github action][613f].
<a id="x-2840ANTS-CI-2FJOBS-2FLINTER-3ALINTER-20FUNCTION-29"></a>
### [function](f490) ‘40ants-ci/jobs/linter:linter‘ &key asdf-systems asdf-version
Creates a job which will run ‘SBL‘int for given ‘ASDF‘ systems.
If no ‘ASD‘ files given, it will use all ‘ASD‘ files from
the current ‘ASDF‘ system.
<a id="x-2840ANTS-CI-2FJOBS-2FLINTER-3ALINTER-20FUNCTION-29"></a>
### [function](f490) ‘40ants-ci/jobs/linter:linter‘ &key asdf-systems asdf-version
Creates a job which will run ‘SBL‘int for given ‘ASDF‘ systems.
If no ‘ASD‘ files given, it will use all ‘ASD‘ files from
the current ‘ASDF‘ system.
<a id="x-2840ANTS-CI-2FJOBS-2FCRITIC-3ACRITIC-20CLASS-29"></a>
### [class](91ec) ‘40ants-ci/jobs/critic:critic‘ (lisp-job)
<a id="x-2840ANTS-CI-2FJOBS-2FCRITIC-3ACRITIC-20FUNCTION-29"></a>
### [function](0696) ‘40ants-ci/jobs/critic:critic‘ &key asdf-systems asdf-version ignore-critiques
Creates a job which will run Lisp Critic for given ‘ASDF‘ systems.
If argument ‘ASDF-SYSTEMS‘ is ‘NIL‘, it will use ‘ASDF‘ system
to which current lisp file is belong.
You may also provide ‘ASDF-VERSION‘ argument. It should be
a string. By default, the latest ‘ASDF‘ version will be used.
[2100]: https://40ants.com/40ants-critic
[b882]: https://40ants.com/build-doc
[613f]: https://40ants.com/build-docs/
[3f72]: https://40ants.com/ci/
[b171]: https://40ants.com/ci/#x-28-23A-28-289-29-20BASE-CHAR-20-2E-20-2240ants-ci-22-29-20ASDF-2FSYSTEM-3ASYSTEM-29
[484a]: https://40ants.com/ci/#x-2840ANTS-CI-2FJOBS-2FCRITIC-3ACRITIC-20FUNCTION-29
[1ddb]: https://40ants.com/ci/#x-2840ANTS-CI-2FJOBS-2FDOCS-3ABUILD-DOCS-20CLASS-29
[13b8]: https://40ants.com/ci/#x-2840ANTS-CI-2FJOBS-2FDOCS-3ABUILD-DOCS-20FUNCTION-29
[6cb7]: https://40ants.com/ci/#x-2840ANTS-CI-2FJOBS-2FRUN-TESTS-3ARUN-TESTS-20CLASS-29
[e35d]: https://40ants.com/ci/#x-2840ANTS-CI-2FJOBS-2FRUN-TESTS-3ARUN-TESTS-20FUNCTION-29
[f2be]: https://40ants.com/docs-builder/
[8469]: https://40ants.com/run-tests
[59d7]: https://40ants.com/run-tests/
[8de1]: https://40ants.com/setup-lisp/
[b60c]: https://coveralls.io/
[e681]: https://github.com/40ants/ci
[de0b]: https://github.com/40ants/ci/actions
[b4a6]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/core.lisp#L523
[91ec]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/critic.lisp#L13
[0696]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/critic.lisp#L23
[cd8d]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/docs.lisp#L13
[0ab0]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/docs.lisp#L20
[f490]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/linter.lisp#L19
[6107]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/run-tests.lisp#L19
[b562]: https://github.com/40ants/ci/blob/6aff2a91d4b9b1d93af06382ce36dc6ea5c7530f/src/jobs/run-tests.lisp#L29
[2f94]: https://github.com/cxxxr/sblint
* * *
###### [generated by [40ANTS-DOC](https://40ants.com/doc/)]
0.1.0
40ants-ci.asd (file)
Next: The 40ants-ci/ci system, Previous: The 40ants-ci system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/linter system, Previous: The 40ants-ci/core system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/critic system, Previous: The 40ants-ci/ci system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/run-tests system, Previous: The 40ants-ci/jobs/linter system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/docs system, Previous: The 40ants-ci/jobs/critic system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/lisp-job system, Previous: The 40ants-ci/jobs/run-tests system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/steps/action system, Previous: The 40ants-ci/jobs/docs system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/workflow system, Previous: The 40ants-ci/jobs/lisp-job system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/jobs/job system, Previous: The 40ants-ci/steps/action system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/steps/sh system, Previous: The 40ants-ci/workflow system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci/utils (system)
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/steps/step system, Previous: The 40ants-ci/jobs/job system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/github system, Previous: The 40ants-ci/steps/sh system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/utils system, Previous: The 40ants-ci/steps/step system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/vars system, Previous: The 40ants-ci/github system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Next: The 40ants-ci/changelog system, Previous: The 40ants-ci/utils system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-ci.asd (file)
file-type.lisp (file)
Previous: The 40ants-ci/vars system, Up: Systems [Contents][Index]
Alexander Artemenko
(:git "https://github.com/40ants/ci")
BSD
40ants-doc/changelog
40ants-ci.asd (file)
file-type.lisp (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files |
Next: The 40ants-ci/core/file-type․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
/home/quickref/quicklisp/dists/quicklisp/software/ci-20220331-git/40ants-ci.asd
Next: The 40ants-ci/ci/file-type․lisp file, Previous: The 40ants-ci․asd file, Up: Lisp files [Contents][Index]
40ants-ci/core (system)
core.lisp
Next: The 40ants-ci/jobs/linter/file-type․lisp file, Previous: The 40ants-ci/core/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/ci (system)
ci.lisp
Next: The 40ants-ci/jobs/critic/file-type․lisp file, Previous: The 40ants-ci/ci/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/linter (system)
jobs/linter.lisp
asdf-systems (method)
Next: The 40ants-ci/jobs/run-tests/file-type․lisp file, Previous: The 40ants-ci/jobs/linter/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/critic (system)
jobs/critic.lisp
Next: The 40ants-ci/jobs/docs/file-type․lisp file, Previous: The 40ants-ci/jobs/critic/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/run-tests (system)
jobs/run-tests.lisp
Next: The 40ants-ci/jobs/lisp-job/file-type․lisp file, Previous: The 40ants-ci/jobs/run-tests/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/docs (system)
jobs/docs.lisp
error-on-warnings (method)
Next: The 40ants-ci/steps/action/file-type․lisp file, Previous: The 40ants-ci/jobs/docs/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/lisp-job (system)
jobs/lisp-job.lisp
Next: The 40ants-ci/workflow/file-type․lisp file, Previous: The 40ants-ci/jobs/lisp-job/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/steps/action (system)
steps/action.lisp
Next: The 40ants-ci/jobs/job/file-type․lisp file, Previous: The 40ants-ci/steps/action/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/workflow (system)
workflow.lisp
Next: The 40ants-ci/steps/sh/file-type․lisp file, Previous: The 40ants-ci/workflow/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/jobs/job (system)
jobs/job.lisp
Next: The 40ants-ci/steps/step/file-type․lisp file, Previous: The 40ants-ci/jobs/job/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/steps/sh (system)
steps/sh.lisp
Next: The 40ants-ci/github/file-type․lisp file, Previous: The 40ants-ci/steps/sh/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/steps/step (system)
steps/step.lisp
Next: The 40ants-ci/utils/file-type․lisp file, Previous: The 40ants-ci/steps/step/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/github (system)
github.lisp
Next: The 40ants-ci/vars/file-type․lisp file, Previous: The 40ants-ci/github/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/utils (system)
utils.lisp
Next: The 40ants-ci/changelog/file-type․lisp file, Previous: The 40ants-ci/utils/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/vars (system)
vars.lisp
Previous: The 40ants-ci/vars/file-type․lisp file, Up: Lisp files [Contents][Index]
40ants-ci/changelog (system)
changelog.lisp
@changelog (special variable)
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
Next: The 40ants-ci/ci package, Previous: Packages, Up: Packages [Contents][Index]
file-type.lisp (file)
40ants-ci/core
common-lisp
Next: The 40ants-ci/jobs/linter package, Previous: The 40ants-ci package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/jobs/critic package, Previous: The 40ants-ci/ci package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/jobs/run-tests package, Previous: The 40ants-ci/jobs/linter package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/jobs/docs package, Previous: The 40ants-ci/jobs/critic package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/jobs/lisp-job package, Previous: The 40ants-ci/jobs/run-tests package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/steps/action package, Previous: The 40ants-ci/jobs/docs package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/workflow package, Previous: The 40ants-ci/jobs/lisp-job package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/jobs/job package, Previous: The 40ants-ci/steps/action package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
defworkflow (macro)
Next: The 40ants-ci/steps/sh package, Previous: The 40ants-ci/workflow package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/steps/step package, Previous: The 40ants-ci/jobs/job package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/github package, Previous: The 40ants-ci/steps/sh package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/utils package, Previous: The 40ants-ci/steps/step package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/vars package, Previous: The 40ants-ci/github package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Next: The 40ants-ci/changelog package, Previous: The 40ants-ci/utils package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
Previous: The 40ants-ci/vars package, Up: Packages [Contents][Index]
file-type.lisp (file)
common-lisp
@changelog (special variable)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
• Exported special variables | ||
• Exported macros | ||
• Exported functions | ||
• Exported generic functions | ||
• Exported classes |
Next: Exported macros, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
When workflow is generated for ASDF system, this variable will contain a primary ASDF system.
file-type.lisp (file)
Workflow will set this variable when preparing the data or YAML generation.
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
Next: Exported functions, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
file-type.lisp (file)
Returns a string with a bash script where some parts are grouped.
In this example we have 3 sections:
“‘lisp
(sections
("Help Argument"
"qlot exec cl-info –help")
("Version Argument"
"qlot exec cl-info –version")
("Lisp Systems Info"
"qlot exec cl-info"
"qlot exec cl-info cl-info defmain"))
“‘
It will be compiled into:
“‘bash
echo ::group::Help Argument
qlot exec cl-info –help
echo ::endgroup::
echo ::group::Version Argument
qlot exec cl-info –version
echo ::endgroup::
echo ::group::Lisp Systems Info
qlot exec cl-info
qlot exec cl-info cl-info defmain
echo ::endgroup::
“‘
file-type.lisp (file)
Next: Exported generic functions, Previous: Exported macros, Up: Exported definitions [Contents][Index]
file-type.lisp (file)
Test wheather LIST is a properly formed alist.
In this library, ALIST has always a string as a key.
Because we need them to have this form to serialize
to JSON propertly.
(alistp ’(("cron" . "0 10 * * 1"))) -> T
(alistp ’((("cron" . "0 10 * * 1")))) -> NIL
file-type.lisp (file)
Creates a job of class BUILD-DOCS.
file-type.lisp (file)
Creates a job which will run Lisp Critic for given ASDF systems.
If argument ASDF-SYSTEMS is NIL, it will use ASDF system
to which current lisp file is belong.
You may also provide ASDF-VERSION argument. It should be a string. By default, the latest ASDF version will be used.
file-type.lisp (file)
file-type.lisp (file)
Removes common leading whitespace from each string.
A few examples:
“‘
(dedent "Hello
World
and all Lispers!")
"Hello
World
and all Lispers!"
“‘
“‘
(dedent "
Hello
World
and all Lispers!")
"Hello
World
and all Lispers!"
“‘
“‘
(dedent "This is a code:
(symbol-name :hello-world)
it will output HELLO-WORLD.")
"This is a code:
(symbol-name :hello-world)
it will output HELLO-WORLD."
“‘
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
Generates GitHub workflow for given ASDF system.
This function searches workflow definitions in all packages
of the given ASDF system.
If PATH argument is not given, workflow files will be written to .github/workflow/ relarive to the SYSTEM.
file-type.lisp (file)
Creates a job which will run SBLint for given ASDF systems.
If no ASD files given, it will use all ASD files from the current ASDF system.
file-type.lisp (file)
file-type.lisp (file)
Make an alist from a plist PLIST.
By default, transforms keys to lowercased strings
file-type.lisp (file)
Test wheather LIST is a properly formed plist.
file-type.lisp (file)
Creates a job step of class RUN-TESTS.
file-type.lisp (file)
file-type.lisp (file)
Test wheather LIST contains exactly 1 element.
file-type.lisp (file)
file-type.lisp (file)
Next: Exported classes, Previous: Exported functions, Up: Exported definitions [Contents][Index]
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
Returns a list of packages created by ASDF system.
Default implementation returns a package having the same name as a system
and all packages matched to package-inferred subsystems:
“‘
CL-USER> (docs-builder/utils:system-packages :docs-builder)
(#<PACKAGE "DOCS-BUILDER">
#<PACKAGE "DOCS-BUILDER/UTILS">
#<PACKAGE "DOCS-BUILDER/GUESSER">
#<PACKAGE "DOCS-BUILDER/BUILDERS/GENEVA/GUESSER">
#<PACKAGE "DOCS-BUILDER/BUILDER">
#<PACKAGE "DOCS-BUILDER/BUILDERS/MGL-PAX/GUESSER">
#<PACKAGE "DOCS-BUILDER/DOCS">
#<PACKAGE "DOCS-BUILDER/BUILDERS/MGL-PAX/BUILDER">)
“‘
This function can be used by builder to find pieces of documentation.
For example, DOCS-BUILDER/BUILDERS/MGL-PAX/GUESSER:@INDEX
builder uses it to find documentation sections.
file-type.lisp (file)
file-type.lisp (file)
Previous: Exported generic functions, Up: Exported definitions [Contents][Index]
file-type.lisp (file)
step (class)
:uses
uses (generic function)
A plist to be passed as "with" dictionary to the action.
:args
action-args (generic function)
Builds documentation and uploads it to GitHub using ["40ants/build-docs" github action](https://40ants.com/build-docs/).
file-type.lisp (file)
lisp-job (class)
:error-on-warnings
t
error-on-warnings (generic function)
file-type.lisp (file)
lisp-job (class)
Critic can validate more than one system, but for the base class we need provide only one.
:asdf-systems
asdf-systems (generic function)
A list strigns with names of critiques to ignore.
:ignore-critiques
ignore-critiques (generic function)
file-type.lisp (file)
standard-object (class)
lisp-job (class)
:name
name (generic function)
:os
"ubuntu-latest"
os (generic function)
:quicklisp
"quicklisp"
quicklisp (generic function)
:lisp
"sbcl-bin"
lisp (generic function)
A list of plists denoting matrix combinations to be excluded.
:exclude
exclude (generic function)
:steps
steps (generic function)
file-type.lisp (file)
lisp-job (class)
Linter can validate more than one system, but for the base class we need provide only one.
:asdf-systems
asdf-systems (generic function)
This job checkouts the sources, installs Roswell and Qlot. Also, it caches results between runs.
file-type.lisp (file)
job (class)
:qlfile
qlfile (generic function)
(or null string)
:asdf-system
asdf-system (generic function)
ASDF version to use when setting up Lisp environment. If NIL, then the latest will be used.
(or null string)
:asdf-version
asdf-version (generic function)
Roswell version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.
(or null string)
:roswell-version
roswell-version (generic function)
Qlot version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.
(or null string)
:qlot-version
qlot-version (generic function)
This job test runs tests for a given ASDF system.
file-type.lisp (file)
lisp-job (class)
:coverage
coverage (generic function)
:custom
custom (generic function)
file-type.lisp (file)
step (class)
:command
command (generic function)
:shell
40ants-ci/steps/sh::*default-shell*
shell (generic function)
file-type.lisp (file)
standard-object (class)
:id
step-id (generic function)
:name
step-name (generic function)
:env
env (generic function)
:if
step-if (generic function)
Previous: Exported definitions, Up: Definitions [Contents][Index]
• Internal special variables | ||
• Internal functions | ||
• Internal generic functions | ||
• Internal classes |
Next: Internal functions, Previous: Internal definitions, Up: Internal definitions [Contents][Index]
At some point installation of the latest roswell version was broken: https://github.com/roswell/roswell/issues/497
file-type.lisp (file)
file-type.lisp (file)
This hash maps ‘package -> workflows‘ where "workflows" is another hash mapping workflow names to workflow objects.
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
Next: Internal generic functions, Previous: Internal special variables, Up: Internal definitions [Contents][Index]
file-type.lisp (file)
file-type.lisp (file)
Whe use as is following forms:
- ("foo" "bar" "baz")
And eval others:
- "blah" -> "blah"
- 12345 -> 12345
- (foo 1 2 3) -> result of foo call.
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
Next: Internal classes, Previous: Internal functions, Up: Internal definitions [Contents][Index]
A plist to be passed as "with" dictionary to the action.
file-type.lisp (file)
Linter can validate more than one system, but for the base class we need provide only one.
file-type.lisp (file)
Critic can validate more than one system, but for the base class we need provide only one.
file-type.lisp (file)
ASDF version to use when setting up Lisp environment. If NIL, then the latest will be used.
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
A list of plists denoting matrix combinations to be excluded.
file-type.lisp (file)
A list strigns with names of critiques to ignore.
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
This hook can be redefine by user.
It will be called each time when
you eval defworkflow either because file compilation
or manually by hitting C-c C-c in the Emacs.
Default behaviour is to generate a new
output for this workflow. Current system is set
to the primary system with same package name
as a package where defworkflow is used.
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
Qlot version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.
file-type.lisp (file)
Roswell version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
automatically generated reader method
file-type.lisp (file)
Previous: Internal generic functions, Up: Internal definitions [Contents][Index]
file-type.lisp (file)
workflow (class)
file-type.lisp (file)
workflow (class)
file-type.lisp (file)
standard-object (class)
:name
name (generic function)
:on-push-to
"master"
on-push-to (generic function)
:on-pull-request
t
on-pull-request (generic function)
:by-cron
"0 10 * * 1"
by-cron (generic function)
:cache
t
cache-p (generic function)
:jobs
jobs (generic function)
Previous: Definitions, Up: Top [Contents][Index]
• Concept index | ||
• Function index | ||
• Variable index | ||
• Data type index |
Next: Function index, Previous: Indexes, Up: Indexes [Contents][Index]
Jump to: | 4
F L |
---|
Jump to: | 4
F L |
---|
Next: Variable index, Previous: Concept index, Up: Indexes [Contents][Index]
Jump to: | A B C D E F G I J L M N O P Q R S T U |
---|
Jump to: | A B C D E F G I J L M N O P Q R S T U |
---|
Next: Data type index, Previous: Function index, Up: Indexes [Contents][Index]
Jump to: | *
0
@
A B C E I J L N O Q R S U |
---|
Jump to: | *
0
@
A B C E I J L N O Q R S U |
---|
Previous: Variable index, Up: Indexes [Contents][Index]
Jump to: | 4
A B C D J L P R S W |
---|
Jump to: | 4
A B C D J L P R S W |
---|