The 40ants-ci Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The 40ants-ci Reference Manual

This is the 40ants-ci Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Thu Sep 15 03:30:26 2022 GMT+0.

Table of Contents


1 Introduction

40Ants-CI - Github Workflow Generator

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.

40ANTS-CI ASDF System Details

Reasons to Use

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 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))

Job Types

Linter

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:

  1. Checkout the code.

  2. Install Roswell & Qlot using 40ants/setup-lisp action.

  3. Install SBLint.

  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.

Critic

This job is similar to linter, but instead of SBLint 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.

Running Tests

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:

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.

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:

(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")))))

Multiple jobs

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:

Building Docs

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"
          }
        }
      ]
    }
  }
}

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:

(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'"
         },
         {

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.

function 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.

function 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.

class 40ants-ci/jobs/run-tests:run-tests (lisp-job)

This job test runs tests for a given ASDF system.

function 40ants-ci/jobs/docs:build-docs &key asdf-system asdf-version (error-on-warnings t)

Creates a job of class build-docs.

class 40ants-ci/jobs/docs:build-docs (lisp-job)

Builds documentation and uploads it to GitHub using "40ants/build-docs" github action.

function 40ants-ci/jobs/linter:linter &key asdf-systems asdf-version

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.

function 40ants-ci/jobs/linter:linter &key asdf-systems asdf-version

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.

class 40ants-ci/jobs/critic:critic (lisp-job)

function 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.


[generated by 40ANTS-DOC]

2 Systems

The main system appears first, followed by any subsystem dependency.


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 40ants-ci

A tool simplify continuous deployment for Common Lisp projects.

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Long Description

<a id="x-2840ANTS-CI-3A-40README-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29"></a>

# 40Ants-CI - Github Workflow Generator

[![](https://github-actions.40ants.com/40ants/ci/matrix.svg)][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:

![](https://user-images.githubusercontent.com/24827/151619261-2d49e2a6-bc5c-42db-aec5-674d9229a1b0.png)

<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](fb3a) ‘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](2170) ‘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](d906) ‘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](2c78) ‘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](1284) ‘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](dbf2) ‘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](dbf2) ‘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](ac05) ‘40ants-ci/jobs/critic:critic‘ (lisp-job)

<a id="x-2840ANTS-CI-2FJOBS-2FCRITIC-3ACRITIC-20FUNCTION-29"></a>

### [function](e117) ‘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
[fb3a]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/core.lisp#L523
[ac05]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/critic.lisp#L13
[e117]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/critic.lisp#L23
[1284]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/docs.lisp#L13
[2c78]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/docs.lisp#L20
[dbf2]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/linter.lisp#L19
[d906]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/run-tests.lisp#L19
[2170]: https://github.com/40ants/ci/blob/e19648bbf830a88bf5a94b4c3cdc8fb725df339a/src/jobs/run-tests.lisp#L29
[2f94]: https://github.com/cxxxr/sblint

* * *
###### [generated by [40ANTS-DOC](https://40ants.com/doc/)]

Version

0.1.0

Dependencies
Source

40ants-ci.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.2 40ants-ci/core

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.3 40ants-ci/github

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.4 40ants-ci/utils

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.5 40ants-ci/vars

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Source

40ants-ci.asd.


2.6 40ants-ci/jobs/docs

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.7 40ants-ci/jobs/lisp-job

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.8 40ants-ci/jobs/job

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependency

40ants-ci/utils (system).

Source

40ants-ci.asd.


2.9 40ants-ci/steps/action

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.10 40ants-ci/steps/step

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.11 40ants-ci/steps/sh

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.12 40ants-ci/jobs/linter

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.13 40ants-ci/jobs/critic

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.14 40ants-ci/jobs/run-tests

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


2.15 40ants-ci/ci

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


Next: , Previous: , Up: Systems   [Contents][Index]

2.16 40ants-ci/workflow

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependencies
Source

40ants-ci.asd.


Previous: , Up: Systems   [Contents][Index]

2.17 40ants-ci/changelog

Author

Alexander Artemenko

Home Page

https://40ants.com/ci/

Source Control

(GIT https://github.com/40ants/ci)

License

BSD

Dependency

40ants-doc/changelog (system).

Source

40ants-ci.asd.


3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


3.1.2 40ants-ci/core/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/core (system).

Packages

40ants-ci.

Public Interface
Internals

3.1.3 40ants-ci/github/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/github (system).

Packages

40ants-ci/github.

Public Interface

3.1.4 40ants-ci/utils/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/utils (system).

Packages

40ants-ci/utils.

Public Interface
Internals

3.1.5 40ants-ci/vars/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/vars (system).

Packages

40ants-ci/vars.

Public Interface

3.1.6 40ants-ci/jobs/docs/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/docs (system).

Packages

40ants-ci/jobs/docs.

Public Interface
Internals

error-on-warnings (reader method).


3.1.7 40ants-ci/jobs/lisp-job/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/lisp-job (system).

Packages

40ants-ci/jobs/lisp-job.

Public Interface
Internals

3.1.8 40ants-ci/jobs/job/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/job (system).

Packages

40ants-ci/jobs/job.

Public Interface
Internals

3.1.9 40ants-ci/steps/action/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/steps/action (system).

Packages

40ants-ci/steps/action.

Public Interface
Internals

3.1.10 40ants-ci/steps/step/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/steps/step (system).

Packages

40ants-ci/steps/step.

Public Interface
Internals

3.1.11 40ants-ci/steps/sh/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/steps/sh (system).

Packages

40ants-ci/steps/sh.

Public Interface
Internals

3.1.12 40ants-ci/jobs/linter/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/linter (system).

Packages

40ants-ci/jobs/linter.

Public Interface
Internals

asdf-systems (reader method).


3.1.13 40ants-ci/jobs/critic/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/critic (system).

Packages

40ants-ci/jobs/critic.

Public Interface
Internals

3.1.14 40ants-ci/jobs/run-tests/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/jobs/run-tests (system).

Packages

40ants-ci/jobs/run-tests.

Public Interface
Internals

3.1.15 40ants-ci/ci/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/ci (system).

Packages

40ants-ci/ci.

Internals

3.1.16 40ants-ci/workflow/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/workflow (system).

Packages

40ants-ci/workflow.

Public Interface
Internals

3.1.17 40ants-ci/changelog/file-type.lisp

Source

40ants-ci.asd.

Parent Component

40ants-ci/changelog (system).

Packages

40ants-ci/changelog.

Public Interface

@changelog (special variable).

Internals
  • 0.1.0 (special variable).
  • 0.1.1 (special variable).
  • 0.2.0 (special variable).
  • 0.2.1 (special variable).
  • 0.2.2 (special variable).
  • 0.3.0 (special variable).
  • 0.4.0 (special variable).
  • 0.5.0 (special variable).
  • 0.6.0 (special variable).
  • 0.7.0 (special variable).
  • 0.8.0 (special variable).

4 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

4.1 40ants-ci/jobs/critic

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.2 40ants-ci/vars

Source

file-type.lisp.

Use List

common-lisp.

Public Interface

4.3 40ants-ci/github

Source

file-type.lisp.

Use List

common-lisp.

Public Interface

4.4 40ants-ci/steps/sh

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.5 40ants-ci/utils

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.6 40ants-ci/jobs/lisp-job

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.7 40ants-ci/jobs/job

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.8 40ants-ci/jobs/docs

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

error-on-warnings (generic reader).


4.9 40ants-ci/workflow

Source

file-type.lisp.

Use List

common-lisp.

Public Interface

defworkflow (macro).

Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.10 40ants-ci/steps/step

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.11 40ants-ci

Source

file-type.lisp.

Nickname

40ants-ci/core

Use List

common-lisp.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

4.12 40ants-ci/jobs/run-tests

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.13 40ants-ci/jobs/linter

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

asdf-systems (generic reader).


4.14 40ants-ci/changelog

Source

file-type.lisp.

Use List

common-lisp.

Public Interface

@changelog (special variable).

Internals
  • 0.1.0 (special variable).
  • 0.1.1 (special variable).
  • 0.2.0 (special variable).
  • 0.2.1 (special variable).
  • 0.2.2 (special variable).
  • 0.3.0 (special variable).
  • 0.4.0 (special variable).
  • 0.5.0 (special variable).
  • 0.6.0 (special variable).
  • 0.7.0 (special variable).
  • 0.8.0 (special variable).

4.15 40ants-ci/steps/action

Source

file-type.lisp.

Use List

common-lisp.

Public Interface
Internals

4.16 40ants-ci/ci

Source

file-type.lisp.

Use List

common-lisp.

Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


Next: , Previous: , Up: Public Interface   [Contents][Index]

5.1.1 Special variables

Special Variable: *current-system*

When workflow is generated for ASDF system, this variable will contain a primary ASDF system.

Package

40ants-ci/vars.

Source

file-type.lisp.

Special Variable: *use-cache*

Workflow will set this variable when preparing the data or YAML generation.

Package

40ants-ci/vars.

Source

file-type.lisp.

Special Variable: @changelog
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: @index
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @readme
Package

40ants-ci.

Source

file-type.lisp.


5.1.2 Macros

Macro: defworkflow (name &key on-push-to by-cron on-pull-request cache jobs)
Package

40ants-ci/workflow.

Source

file-type.lisp.

Macro: sections (&body body)

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::
“‘

Package

40ants-ci/steps/sh.

Source

file-type.lisp.


5.1.3 Ordinary functions

Function: action (name uses &rest args &key id if env &allow-other-keys)
Package

40ants-ci/steps/action.

Source

file-type.lisp.

Function: alistp (list)

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

Package

40ants-ci/utils.

Source

file-type.lisp.

Function: build-docs (&key asdf-system asdf-version error-on-warnings)

Creates a job of class BUILD-DOCS.

Package

40ants-ci/jobs/docs.

Source

file-type.lisp.

Function: 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.

Package

40ants-ci/jobs/critic.

Source

file-type.lisp.

Function: current-system-name ()
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: dedent (text)

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."
“‘

Package

40ants-ci/utils.

Source

file-type.lisp.

Function: ensure-list-of-plists (data)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: ensure-primary-system (system)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: 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.

Package

40ants-ci.

Source

file-type.lisp.

Function: linter (&key asdf-systems asdf-version)

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.

Package

40ants-ci/jobs/linter.

Source

file-type.lisp.

Function: make-github-workflows-path (system)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: plist-to-alist (plist &key string-keys lowercase)

Make an alist from a plist PLIST.

By default, transforms keys to lowercased strings

Package

40ants-ci/utils.

Source

file-type.lisp.

Function: plistp (list)

Test wheather LIST is a properly formed plist.

Package

40ants-ci/utils.

Source

file-type.lisp.

Function: run-tests (&rest rest &key coverage qlfile asdf-system asdf-version os quicklisp lisp exclude custom)

Creates a job step of class RUN-TESTS.

Package

40ants-ci/jobs/run-tests.

Source

file-type.lisp.

Function: sh (name command &rest env &key id if shell &allow-other-keys)
Package

40ants-ci/steps/sh.

Source

file-type.lisp.

Function: single (list)

Test wheather LIST contains exactly 1 element.

Package

40ants-ci/utils.

Source

file-type.lisp.

Function: to-json (data)
Package

40ants-ci/utils.

Source

file-type.lisp.


5.1.4 Generic functions

Generic Function: asdf-system (object)
Package

40ants-ci/jobs/lisp-job.

Methods
Reader Method: asdf-system :around ((job lisp-job))
Source

file-type.lisp.

Target Slot

asdf-system.

Method: asdf-system ((lisp-job lisp-job))

automatically generated reader method

Source

file-type.lisp.

Generic Function: generate (obj path)
Package

40ants-ci/github.

Source

file-type.lisp.

Methods
Method: generate ((workflow workflow) path)
Source

file-type.lisp.

Method: generate ((package package) path)
Source

file-type.lisp.

Method: generate ((system system) path)
Method: generate ((symbol symbol) path)
Generic Function: lisp (object)
Package

40ants-ci/jobs/job.

Methods
Reader Method: lisp :around ((job job))
Source

file-type.lisp.

Target Slot

lisp.

Method: lisp ((job job))

automatically generated reader method

Source

file-type.lisp.

Generic Reader: name (object)
Package

40ants-ci/jobs/job.

Methods
Reader Method: name ((job job))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Function: os (object)
Package

40ants-ci/jobs/job.

Methods
Reader Method: os :around ((job job))
Source

file-type.lisp.

Target Slot

os.

Method: os ((job job))

automatically generated reader method

Source

file-type.lisp.

Generic Function: prepare-data (obj)
Package

40ants-ci/github.

Source

file-type.lisp.

Methods
Method: prepare-data ((workflow workflow))
Source

file-type.lisp.

Method: prepare-data ((sh sh))
Source

file-type.lisp.

Method: prepare-data ((action action))
Source

file-type.lisp.

Method: prepare-data :around ((step step))
Source

file-type.lisp.

Method: prepare-data ((step step))
Source

file-type.lisp.

Method: prepare-data ((job job))
Source

file-type.lisp.

Generic Function: quicklisp (object)
Package

40ants-ci/jobs/job.

Methods
Reader Method: quicklisp :around ((job job))
Source

file-type.lisp.

Target Slot

quicklisp.

Method: quicklisp ((job job))

automatically generated reader method

Source

file-type.lisp.

Generic Reader: step-id (object)
Package

40ants-ci/steps/step.

Methods
Reader Method: step-id ((step step))

automatically generated reader method

Source

file-type.lisp.

Target Slot

id.

Generic Reader: step-name (object)
Package

40ants-ci/steps/step.

Methods
Reader Method: step-name ((step step))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Function: steps (object)
Package

40ants-ci/jobs/job.

Methods
Method: steps ((job run-tests))
Source

file-type.lisp.

Method: steps ((job critic))
Source

file-type.lisp.

Method: steps ((job linter))
Source

file-type.lisp.

Method: steps ((job build-docs))
Source

file-type.lisp.

Method: steps ((job lisp-job))
Source

file-type.lisp.

Reader Method: steps :around ((job job))
Source

file-type.lisp.

Target Slot

steps.

Method: steps ((job job))

automatically generated reader method

Source

file-type.lisp.

Generic Function: system-packages (system)

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.

Package

40ants-ci/utils.

Source

file-type.lisp.

Methods
Method: system-packages ((system string))
Method: system-packages ((system symbol))
Method: system-packages ((system system))
Generic Function: use-matrix-p (job)
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Methods
Method: use-matrix-p ((job job))

5.1.5 Standalone methods

Method: initialize-instance :after ((job job) &rest initargs)
Source

file-type.lisp.


5.1.6 Classes

Class: action
Package

40ants-ci/steps/action.

Source

file-type.lisp.

Direct superclasses

step.

Direct methods
Direct slots
Slot: uses
Initargs

:uses

Readers

uses.

Writers

This slot is read-only.

Slot: action-args

A plist to be passed as "with" dictionary to the action.

Initargs

:args

Readers

action-args.

Writers

This slot is read-only.

Class: build-docs

Builds documentation and uploads it to GitHub using ["40ants/build-docs" github action](https://40ants.com/build-docs/).

Package

40ants-ci/jobs/docs.

Source

file-type.lisp.

Direct superclasses

lisp-job.

Direct methods
Direct slots
Slot: error-on-warnings
Initform

t

Initargs

:error-on-warnings

Readers

error-on-warnings.

Writers

This slot is read-only.

Class: critic
Package

40ants-ci/jobs/critic.

Source

file-type.lisp.

Direct superclasses

lisp-job.

Direct methods
Direct slots
Slot: asdf-systems

Critic can validate more than one system, but for the base class we need provide only one.

Initargs

:asdf-systems

Readers

asdf-systems.

Writers

This slot is read-only.

Slot: ignore-critiques

A list strigns with names of critiques to ignore.

Initargs

:ignore-critiques

Readers

ignore-critiques.

Writers

This slot is read-only.

Class: job
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Direct subclasses

lisp-job.

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: os
Initform

"ubuntu-latest"

Initargs

:os

Readers

os.

Writers

This slot is read-only.

Slot: quicklisp
Initform

"quicklisp"

Initargs

:quicklisp

Readers

quicklisp.

Writers

This slot is read-only.

Slot: lisp
Initform

"sbcl-bin"

Initargs

:lisp

Readers

lisp.

Writers

This slot is read-only.

Slot: exclude

A list of plists denoting matrix combinations to be excluded.

Initargs

:exclude

Readers

exclude.

Writers

This slot is read-only.

Slot: steps
Initargs

:steps

Readers

steps.

Writers

This slot is read-only.

Class: linter
Package

40ants-ci/jobs/linter.

Source

file-type.lisp.

Direct superclasses

lisp-job.

Direct methods
Direct slots
Slot: asdf-systems

Linter can validate more than one system, but for the base class we need provide only one.

Initargs

:asdf-systems

Readers

asdf-systems.

Writers

This slot is read-only.

Class: lisp-job

This job checkouts the sources, installs Roswell and Qlot. Also, it caches results between runs.

Package

40ants-ci/jobs/lisp-job.

Source

file-type.lisp.

Direct superclasses

job.

Direct subclasses
Direct methods
Direct slots
Slot: qlfile
Initargs

:qlfile

Readers

qlfile.

Writers

This slot is read-only.

Slot: asdf-system
Type

(or null string)

Initargs

:asdf-system

Readers

asdf-system.

Writers

This slot is read-only.

Slot: asdf-version

ASDF version to use when setting up Lisp environment. If NIL, then the latest will be used.

Type

(or null string)

Initargs

:asdf-version

Readers

asdf-version.

Writers

This slot is read-only.

Slot: roswell-version

Roswell version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.

Type

(or null string)

Initargs

:roswell-version

Readers

roswell-version.

Writers

This slot is read-only.

Slot: qlot-version

Qlot version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.

Type

(or null string)

Initargs

:qlot-version

Readers

qlot-version.

Writers

This slot is read-only.

Class: run-tests

This job test runs tests for a given ASDF system.

Package

40ants-ci/jobs/run-tests.

Source

file-type.lisp.

Direct superclasses

lisp-job.

Direct methods
Direct slots
Slot: coverage
Initargs

:coverage

Readers

coverage.

Writers

This slot is read-only.

Slot: custom
Initargs

:custom

Readers

custom.

Writers

This slot is read-only.

Class: sh
Package

40ants-ci/steps/sh.

Source

file-type.lisp.

Direct superclasses

step.

Direct methods
Direct slots
Slot: command
Initargs

:command

Readers

command.

Writers

This slot is read-only.

Slot: shell
Initform

40ants-ci/steps/sh::*default-shell*

Initargs

:shell

Readers

shell.

Writers

This slot is read-only.

Class: step
Package

40ants-ci/steps/step.

Source

file-type.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: id
Initargs

:id

Readers

step-id.

Writers

This slot is read-only.

Slot: name
Initargs

:name

Readers

step-name.

Writers

This slot is read-only.

Slot: env
Initargs

:env

Readers

env.

Writers

This slot is read-only.

Slot: if
Package

common-lisp.

Initargs

:if

Readers

step-if.

Writers

This slot is read-only.


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Special variables

Special Variable: *asdf-version*

At some point installation of the latest roswell version was broken: https://github.com/roswell/roswell/issues/497

Package

40ants-ci/ci.

Source

file-type.lisp.

Special Variable: *default-shell*
Package

40ants-ci/steps/sh.

Source

file-type.lisp.

Special Variable: *registered-workflows*

This hash maps ‘package -> workflows‘ where "workflows" is another hash mapping workflow names to workflow objects.

Package

40ants-ci/workflow.

Source

file-type.lisp.

Special Variable: 0.1.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.1.1
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.2.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.2.1
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.2.2
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.3.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.4.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.5.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.6.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.7.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: 0.8.0
Package

40ants-ci/changelog.

Source

file-type.lisp.

Special Variable: @build-docs
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @caching
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @critic
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @details
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @job-types
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @linter
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @matrix
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @multiple-jobs
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @quickstart
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @reasons
Package

40ants-ci.

Source

file-type.lisp.

Special Variable: @run-tests
Package

40ants-ci.

Source

file-type.lisp.


5.2.2 Ordinary functions

Function: count-leading-spaces (line)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: empty-line (line)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: eval-arg (arg)

Whe use as is following forms:

- ("foo" "bar" "baz")

And eval others:

- "blah" -> "blah"
- 12345 -> 12345
- (foo 1 2 3) -> result of foo call.

Package

40ants-ci/workflow.

Source

file-type.lisp.

Function: list-to-json (obj stream)
Package

40ants-ci/utils.

Source

file-type.lisp.

Function: make-job (name-and-optional-args)
Package

40ants-ci/workflow.

Source

file-type.lisp.

Function: make-workflow-path (base-path workflow)
Package

40ants-ci/workflow.

Source

file-type.lisp.

Function: package-workflows (&optional package)
Package

40ants-ci/workflow.

Source

file-type.lisp.

Function: register-workflow (workflow &key package)
Package

40ants-ci/workflow.

Source

file-type.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.3 Generic functions

Generic Reader: action-args (object)
Package

40ants-ci/steps/action.

Methods
Reader Method: action-args ((action action))

A plist to be passed as "with" dictionary to the action.

Source

file-type.lisp.

Target Slot

action-args.

Generic Reader: asdf-systems (object)
Package

40ants-ci/jobs/critic.

Methods
Reader Method: asdf-systems ((critic critic))

Critic can validate more than one system, but for the base class we need provide only one.

Source

file-type.lisp.

Target Slot

asdf-systems.

Generic Reader: asdf-systems (object)
Package

40ants-ci/jobs/linter.

Methods
Reader Method: asdf-systems ((linter linter))

Linter can validate more than one system, but for the base class we need provide only one.

Source

file-type.lisp.

Target Slot

asdf-systems.

Generic Reader: asdf-version (object)
Package

40ants-ci/jobs/lisp-job.

Methods
Reader Method: asdf-version ((lisp-job lisp-job))

ASDF version to use when setting up Lisp environment. If NIL, then the latest will be used.

Source

file-type.lisp.

Target Slot

asdf-version.

Generic Function: by-cron (object)
Package

40ants-ci/workflow.

Methods
Reader Method: by-cron :around ((workflow workflow))
Source

file-type.lisp.

Target Slot

by-cron.

Method: by-cron ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Generic Reader: cache-p (object)
Package

40ants-ci/workflow.

Methods
Reader Method: cache-p ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Target Slot

cache.

Generic Reader: command (object)
Package

40ants-ci/steps/sh.

Methods
Reader Method: command ((sh sh))

automatically generated reader method

Source

file-type.lisp.

Target Slot

command.

Generic Reader: coverage (object)
Package

40ants-ci/jobs/run-tests.

Methods
Reader Method: coverage ((run-tests run-tests))

automatically generated reader method

Source

file-type.lisp.

Target Slot

coverage.

Generic Reader: custom (object)
Package

40ants-ci/jobs/run-tests.

Methods
Reader Method: custom ((run-tests run-tests))

automatically generated reader method

Source

file-type.lisp.

Target Slot

custom.

Generic Reader: env (object)
Package

40ants-ci/steps/step.

Methods
Reader Method: env ((step step))

automatically generated reader method

Source

file-type.lisp.

Target Slot

env.

Generic Reader: error-on-warnings (object)
Package

40ants-ci/jobs/docs.

Methods
Reader Method: error-on-warnings ((build-docs build-docs))

automatically generated reader method

Source

file-type.lisp.

Target Slot

error-on-warnings.

Generic Function: exclude (object)
Package

40ants-ci/jobs/job.

Methods
Reader Method: exclude :around ((job job))
Source

file-type.lisp.

Target Slot

exclude.

Method: exclude ((job job))

A list of plists denoting matrix combinations to be excluded.

Source

file-type.lisp.

Generic Reader: ignore-critiques (object)
Package

40ants-ci/jobs/critic.

Methods
Reader Method: ignore-critiques ((critic critic))

A list strigns with names of critiques to ignore.

Source

file-type.lisp.

Target Slot

ignore-critiques.

Generic Function: jobs (object)
Package

40ants-ci/workflow.

Methods
Reader Method: jobs :around ((workflow workflow))
Source

file-type.lisp.

Target Slot

jobs.

Method: jobs ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Generic Function: make-cache-key (job)
Package

40ants-ci/jobs/lisp-job.

Source

file-type.lisp.

Methods
Method: make-cache-key ((job lisp-job))
Generic Function: make-cache-steps (job)
Package

40ants-ci/jobs/lisp-job.

Source

file-type.lisp.

Methods
Method: make-cache-steps ((job lisp-job))
Generic Function: make-env (job)
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Methods
Method: make-env ((job job))
Generic Function: make-env (step)
Package

40ants-ci/steps/step.

Source

file-type.lisp.

Methods
Method: make-env ((step step))
Generic Function: make-matrix (job)
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Methods
Method: make-matrix ((job job))
Generic Function: make-runs-on (job)
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Methods
Method: make-runs-on ((job job))
Generic Function: make-steps (job)
Package

40ants-ci/jobs/job.

Source

file-type.lisp.

Methods
Method: make-steps ((job job))
Generic Function: make-triggers (workflow)
Package

40ants-ci/workflow.

Source

file-type.lisp.

Methods
Method: make-triggers ((workflow workflow))
Generic Reader: name (object)
Package

40ants-ci/workflow.

Methods
Reader Method: name ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Target Slot

name.

Generic Reader: on-pull-request (object)
Package

40ants-ci/workflow.

Methods
Reader Method: on-pull-request ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Target Slot

on-pull-request.

Generic Function: on-push-to (object)
Package

40ants-ci/workflow.

Methods
Reader Method: on-push-to :around ((workflow workflow))
Source

file-type.lisp.

Target Slot

on-push-to.

Method: on-push-to ((workflow workflow))

automatically generated reader method

Source

file-type.lisp.

Generic Function: on-workflow-redefinition (workflow)

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.

Package

40ants-ci/workflow.

Source

file-type.lisp.

Methods
Method: on-workflow-redefinition ((workflow workflow))
Generic Reader: qlfile (object)
Package

40ants-ci/jobs/lisp-job.

Methods
Reader Method: qlfile ((lisp-job lisp-job))

automatically generated reader method

Source

file-type.lisp.

Target Slot

qlfile.

Generic Reader: qlot-version (object)
Package

40ants-ci/jobs/lisp-job.

Methods
Reader Method: qlot-version ((lisp-job lisp-job))

Qlot version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.

Source

file-type.lisp.

Target Slot

qlot-version.

Generic Reader: roswell-version (object)
Package

40ants-ci/jobs/lisp-job.

Methods
Reader Method: roswell-version ((lisp-job lisp-job))

Roswell version to use when setting up Lisp environment. If NIL, then will be used version, pinned in SETUP-LISP github action.

Source

file-type.lisp.

Target Slot

roswell-version.

Generic Reader: shell (object)
Package

40ants-ci/steps/sh.

Methods
Reader Method: shell ((sh sh))

automatically generated reader method

Source

file-type.lisp.

Target Slot

shell.

Generic Reader: step-if (object)
Package

40ants-ci/steps/step.

Methods
Reader Method: step-if ((step step))

automatically generated reader method

Source

file-type.lisp.

Target Slot

if.

Generic Reader: uses (object)
Package

40ants-ci/steps/action.

Methods
Reader Method: uses ((action action))

automatically generated reader method

Source

file-type.lisp.

Target Slot

uses.


Previous: , Up: Internals   [Contents][Index]

5.2.4 Classes

Class: ci
Package

40ants-ci/ci.

Source

file-type.lisp.

Direct superclasses

workflow.

Class: docs
Package

40ants-ci/ci.

Source

file-type.lisp.

Direct superclasses

workflow.

Class: workflow
Package

40ants-ci/workflow.

Source

file-type.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: on-push-to
Initform

"master"

Initargs

:on-push-to

Readers

on-push-to.

Writers

This slot is read-only.

Slot: on-pull-request
Initform

t

Initargs

:on-pull-request

Readers

on-pull-request.

Writers

This slot is read-only.

Slot: by-cron
Initform

"0 10 * * 1"

Initargs

:by-cron

Readers

by-cron.

Writers

This slot is read-only.

Slot: cache
Initform

t

Initargs

:cache

Readers

cache-p.

Writers

This slot is read-only.

Slot: jobs
Initargs

:jobs

Readers

jobs.

Writers

This slot is read-only.


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   A   B   C   D   E   F   G   I   J   L   M   N   O   P   Q   R   S   T   U  
Index Entry  Section

A
action: Public ordinary functions
action-args: Private generic functions
action-args: Private generic functions
alistp: Public ordinary functions
asdf-system: Public generic functions
asdf-system: Public generic functions
asdf-system: Public generic functions
asdf-systems: Private generic functions
asdf-systems: Private generic functions
asdf-systems: Private generic functions
asdf-systems: Private generic functions
asdf-version: Private generic functions
asdf-version: Private generic functions

B
build-docs: Public ordinary functions
by-cron: Private generic functions
by-cron: Private generic functions
by-cron: Private generic functions

C
cache-p: Private generic functions
cache-p: Private generic functions
command: Private generic functions
command: Private generic functions
count-leading-spaces: Private ordinary functions
coverage: Private generic functions
coverage: Private generic functions
critic: Public ordinary functions
current-system-name: Public ordinary functions
custom: Private generic functions
custom: Private generic functions

D
dedent: Public ordinary functions
defworkflow: Public macros

E
empty-line: Private ordinary functions
ensure-list-of-plists: Public ordinary functions
ensure-primary-system: Public ordinary functions
env: Private generic functions
env: Private generic functions
error-on-warnings: Private generic functions
error-on-warnings: Private generic functions
eval-arg: Private ordinary functions
exclude: Private generic functions
exclude: Private generic functions
exclude: Private generic functions

F
Function, action: Public ordinary functions
Function, alistp: Public ordinary functions
Function, build-docs: Public ordinary functions
Function, count-leading-spaces: Private ordinary functions
Function, critic: Public ordinary functions
Function, current-system-name: Public ordinary functions
Function, dedent: Public ordinary functions
Function, empty-line: Private ordinary functions
Function, ensure-list-of-plists: Public ordinary functions
Function, ensure-primary-system: Public ordinary functions
Function, eval-arg: Private ordinary functions
Function, generate: Public ordinary functions
Function, linter: Public ordinary functions
Function, list-to-json: Private ordinary functions
Function, make-github-workflows-path: Public ordinary functions
Function, make-job: Private ordinary functions
Function, make-workflow-path: Private ordinary functions
Function, package-workflows: Private ordinary functions
Function, plist-to-alist: Public ordinary functions
Function, plistp: Public ordinary functions
Function, register-workflow: Private ordinary functions
Function, run-tests: Public ordinary functions
Function, sh: Public ordinary functions
Function, single: Public ordinary functions
Function, to-json: Public ordinary functions

G
generate: Public ordinary functions
generate: Public generic functions
generate: Public generic functions
generate: Public generic functions
generate: Public generic functions
generate: Public generic functions
Generic Function, action-args: Private generic functions
Generic Function, asdf-system: Public generic functions
Generic Function, asdf-systems: Private generic functions
Generic Function, asdf-systems: Private generic functions
Generic Function, asdf-version: Private generic functions
Generic Function, by-cron: Private generic functions
Generic Function, cache-p: Private generic functions
Generic Function, command: Private generic functions
Generic Function, coverage: Private generic functions
Generic Function, custom: Private generic functions
Generic Function, env: Private generic functions
Generic Function, error-on-warnings: Private generic functions
Generic Function, exclude: Private generic functions
Generic Function, generate: Public generic functions
Generic Function, ignore-critiques: Private generic functions
Generic Function, jobs: Private generic functions
Generic Function, lisp: Public generic functions
Generic Function, make-cache-key: Private generic functions
Generic Function, make-cache-steps: Private generic functions
Generic Function, make-env: Private generic functions
Generic Function, make-env: Private generic functions
Generic Function, make-matrix: Private generic functions
Generic Function, make-runs-on: Private generic functions
Generic Function, make-steps: Private generic functions
Generic Function, make-triggers: Private generic functions
Generic Function, name: Public generic functions
Generic Function, name: Private generic functions
Generic Function, on-pull-request: Private generic functions
Generic Function, on-push-to: Private generic functions
Generic Function, on-workflow-redefinition: Private generic functions
Generic Function, os: Public generic functions
Generic Function, prepare-data: Public generic functions
Generic Function, qlfile: Private generic functions
Generic Function, qlot-version: Private generic functions
Generic Function, quicklisp: Public generic functions
Generic Function, roswell-version: Private generic functions
Generic Function, shell: Private generic functions
Generic Function, step-id: Public generic functions
Generic Function, step-if: Private generic functions
Generic Function, step-name: Public generic functions
Generic Function, steps: Public generic functions
Generic Function, system-packages: Public generic functions
Generic Function, use-matrix-p: Public generic functions
Generic Function, uses: Private generic functions

I
ignore-critiques: Private generic functions
ignore-critiques: Private generic functions
initialize-instance: Public standalone methods

J
jobs: Private generic functions
jobs: Private generic functions
jobs: Private generic functions

L
linter: Public ordinary functions
lisp: Public generic functions
lisp: Public generic functions
lisp: Public generic functions
list-to-json: Private ordinary functions

M
Macro, defworkflow: Public macros
Macro, sections: Public macros
make-cache-key: Private generic functions
make-cache-key: Private generic functions
make-cache-steps: Private generic functions
make-cache-steps: Private generic functions
make-env: Private generic functions
make-env: Private generic functions
make-env: Private generic functions
make-env: Private generic functions
make-github-workflows-path: Public ordinary functions
make-job: Private ordinary functions
make-matrix: Private generic functions
make-matrix: Private generic functions
make-runs-on: Private generic functions
make-runs-on: Private generic functions
make-steps: Private generic functions
make-steps: Private generic functions
make-triggers: Private generic functions
make-triggers: Private generic functions
make-workflow-path: Private ordinary functions
Method, action-args: Private generic functions
Method, asdf-system: Public generic functions
Method, asdf-system: Public generic functions
Method, asdf-systems: Private generic functions
Method, asdf-systems: Private generic functions
Method, asdf-version: Private generic functions
Method, by-cron: Private generic functions
Method, by-cron: Private generic functions
Method, cache-p: Private generic functions
Method, command: Private generic functions
Method, coverage: Private generic functions
Method, custom: Private generic functions
Method, env: Private generic functions
Method, error-on-warnings: Private generic functions
Method, exclude: Private generic functions
Method, exclude: Private generic functions
Method, generate: Public generic functions
Method, generate: Public generic functions
Method, generate: Public generic functions
Method, generate: Public generic functions
Method, ignore-critiques: Private generic functions
Method, initialize-instance: Public standalone methods
Method, jobs: Private generic functions
Method, jobs: Private generic functions
Method, lisp: Public generic functions
Method, lisp: Public generic functions
Method, make-cache-key: Private generic functions
Method, make-cache-steps: Private generic functions
Method, make-env: Private generic functions
Method, make-env: Private generic functions
Method, make-matrix: Private generic functions
Method, make-runs-on: Private generic functions
Method, make-steps: Private generic functions
Method, make-triggers: Private generic functions
Method, name: Public generic functions
Method, name: Private generic functions
Method, on-pull-request: Private generic functions
Method, on-push-to: Private generic functions
Method, on-push-to: Private generic functions
Method, on-workflow-redefinition: Private generic functions
Method, os: Public generic functions
Method, os: Public generic functions
Method, prepare-data: Public generic functions
Method, prepare-data: Public generic functions
Method, prepare-data: Public generic functions
Method, prepare-data: Public generic functions
Method, prepare-data: Public generic functions
Method, prepare-data: Public generic functions
Method, qlfile: Private generic functions
Method, qlot-version: Private generic functions
Method, quicklisp: Public generic functions
Method, quicklisp: Public generic functions
Method, roswell-version: Private generic functions
Method, shell: Private generic functions
Method, step-id: Public generic functions
Method, step-if: Private generic functions
Method, step-name: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, steps: Public generic functions
Method, system-packages: Public generic functions
Method, system-packages: Public generic functions
Method, system-packages: Public generic functions
Method, use-matrix-p: Public generic functions
Method, uses: Private generic functions

N
name: Public generic functions
name: Public generic functions
name: Private generic functions
name: Private generic functions

O
on-pull-request: Private generic functions
on-pull-request: Private generic functions
on-push-to: Private generic functions
on-push-to: Private generic functions
on-push-to: Private generic functions
on-workflow-redefinition: Private generic functions
on-workflow-redefinition: Private generic functions
os: Public generic functions
os: Public generic functions
os: Public generic functions

P
package-workflows: Private ordinary functions
plist-to-alist: Public ordinary functions
plistp: Public ordinary functions
prepare-data: Public generic functions
prepare-data: Public generic functions
prepare-data: Public generic functions
prepare-data: Public generic functions
prepare-data: Public generic functions
prepare-data: Public generic functions
prepare-data: Public generic functions

Q
qlfile: Private generic functions
qlfile: Private generic functions
qlot-version: Private generic functions
qlot-version: Private generic functions
quicklisp: Public generic functions
quicklisp: Public generic functions
quicklisp: Public generic functions

R
register-workflow: Private ordinary functions
roswell-version: Private generic functions
roswell-version: Private generic functions
run-tests: Public ordinary functions

S
sections: Public macros
sh: Public ordinary functions
shell: Private generic functions
shell: Private generic functions
single: Public ordinary functions
step-id: Public generic functions
step-id: Public generic functions
step-if: Private generic functions
step-if: Private generic functions
step-name: Public generic functions
step-name: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
steps: Public generic functions
system-packages: Public generic functions
system-packages: Public generic functions
system-packages: Public generic functions
system-packages: Public generic functions

T
to-json: Public ordinary functions

U
use-matrix-p: Public generic functions
use-matrix-p: Public generic functions
uses: Private generic functions
uses: Private generic functions

Jump to:   A   B   C   D   E   F   G   I   J   L   M   N   O   P   Q   R   S   T   U  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   *   0   @  
A   B   C   E   I   J   L   N   O   Q   R   S   U  
Index Entry  Section

*
*asdf-version*: Private special variables
*current-system*: Public special variables
*default-shell*: Private special variables
*registered-workflows*: Private special variables
*use-cache*: Public special variables

0
0.1.0: Private special variables
0.1.1: Private special variables
0.2.0: Private special variables
0.2.1: Private special variables
0.2.2: Private special variables
0.3.0: Private special variables
0.4.0: Private special variables
0.5.0: Private special variables
0.6.0: Private special variables
0.7.0: Private special variables
0.8.0: Private special variables

@
@build-docs: Private special variables
@caching: Private special variables
@changelog: Public special variables
@critic: Private special variables
@details: Private special variables
@index: Public special variables
@job-types: Private special variables
@linter: Private special variables
@matrix: Private special variables
@multiple-jobs: Private special variables
@quickstart: Private special variables
@readme: Public special variables
@reasons: Private special variables
@run-tests: Private special variables

A
action-args: Public classes
asdf-system: Public classes
asdf-systems: Public classes
asdf-systems: Public classes
asdf-version: Public classes

B
by-cron: Private classes

C
cache: Private classes
command: Public classes
coverage: Public classes
custom: Public classes

E
env: Public classes
error-on-warnings: Public classes
exclude: Public classes

I
id: Public classes
if: Public classes
ignore-critiques: Public classes

J
jobs: Private classes

L
lisp: Public classes

N
name: Public classes
name: Public classes
name: Private classes

O
on-pull-request: Private classes
on-push-to: Private classes
os: Public classes

Q
qlfile: Public classes
qlot-version: Public classes
quicklisp: Public classes

R
roswell-version: Public classes

S
shell: Public classes
Slot, action-args: Public classes
Slot, asdf-system: Public classes
Slot, asdf-systems: Public classes
Slot, asdf-systems: Public classes
Slot, asdf-version: Public classes
Slot, by-cron: Private classes
Slot, cache: Private classes
Slot, command: Public classes
Slot, coverage: Public classes
Slot, custom: Public classes
Slot, env: Public classes
Slot, error-on-warnings: Public classes
Slot, exclude: Public classes
Slot, id: Public classes
Slot, if: Public classes
Slot, ignore-critiques: Public classes
Slot, jobs: Private classes
Slot, lisp: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, name: Private classes
Slot, on-pull-request: Private classes
Slot, on-push-to: Private classes
Slot, os: Public classes
Slot, qlfile: Public classes
Slot, qlot-version: Public classes
Slot, quicklisp: Public classes
Slot, roswell-version: Public classes
Slot, shell: Public classes
Slot, steps: Public classes
Slot, uses: Public classes
Special Variable, *asdf-version*: Private special variables
Special Variable, *current-system*: Public special variables
Special Variable, *default-shell*: Private special variables
Special Variable, *registered-workflows*: Private special variables
Special Variable, *use-cache*: Public special variables
Special Variable, 0.1.0: Private special variables
Special Variable, 0.1.1: Private special variables
Special Variable, 0.2.0: Private special variables
Special Variable, 0.2.1: Private special variables
Special Variable, 0.2.2: Private special variables
Special Variable, 0.3.0: Private special variables
Special Variable, 0.4.0: Private special variables
Special Variable, 0.5.0: Private special variables
Special Variable, 0.6.0: Private special variables
Special Variable, 0.7.0: Private special variables
Special Variable, 0.8.0: Private special variables
Special Variable, @build-docs: Private special variables
Special Variable, @caching: Private special variables
Special Variable, @changelog: Public special variables
Special Variable, @critic: Private special variables
Special Variable, @details: Private special variables
Special Variable, @index: Public special variables
Special Variable, @job-types: Private special variables
Special Variable, @linter: Private special variables
Special Variable, @matrix: Private special variables
Special Variable, @multiple-jobs: Private special variables
Special Variable, @quickstart: Private special variables
Special Variable, @readme: Public special variables
Special Variable, @reasons: Private special variables
Special Variable, @run-tests: Private special variables
steps: Public classes

U
uses: Public classes

Jump to:   *   0   @  
A   B   C   E   I   J   L   N   O   Q   R   S   U  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   4  
A   B   C   D   F   J   L   P   R   S   W  
Index Entry  Section

4
40ants-ci: The 40ants-ci system
40ants-ci: The 40ants-ci package
40ants-ci.asd: The 40ants-ci/40ants-ci․asd file
40ants-ci/changelog: The 40ants-ci/changelog system
40ants-ci/changelog: The 40ants-ci/changelog package
40ants-ci/ci: The 40ants-ci/ci system
40ants-ci/ci: The 40ants-ci/ci package
40ants-ci/core: The 40ants-ci/core system
40ants-ci/github: The 40ants-ci/github system
40ants-ci/github: The 40ants-ci/github package
40ants-ci/jobs/critic: The 40ants-ci/jobs/critic system
40ants-ci/jobs/critic: The 40ants-ci/jobs/critic package
40ants-ci/jobs/docs: The 40ants-ci/jobs/docs system
40ants-ci/jobs/docs: The 40ants-ci/jobs/docs package
40ants-ci/jobs/job: The 40ants-ci/jobs/job system
40ants-ci/jobs/job: The 40ants-ci/jobs/job package
40ants-ci/jobs/linter: The 40ants-ci/jobs/linter system
40ants-ci/jobs/linter: The 40ants-ci/jobs/linter package
40ants-ci/jobs/lisp-job: The 40ants-ci/jobs/lisp-job system
40ants-ci/jobs/lisp-job: The 40ants-ci/jobs/lisp-job package
40ants-ci/jobs/run-tests: The 40ants-ci/jobs/run-tests system
40ants-ci/jobs/run-tests: The 40ants-ci/jobs/run-tests package
40ants-ci/steps/action: The 40ants-ci/steps/action system
40ants-ci/steps/action: The 40ants-ci/steps/action package
40ants-ci/steps/sh: The 40ants-ci/steps/sh system
40ants-ci/steps/sh: The 40ants-ci/steps/sh package
40ants-ci/steps/step: The 40ants-ci/steps/step system
40ants-ci/steps/step: The 40ants-ci/steps/step package
40ants-ci/utils: The 40ants-ci/utils system
40ants-ci/utils: The 40ants-ci/utils package
40ants-ci/vars: The 40ants-ci/vars system
40ants-ci/vars: The 40ants-ci/vars package
40ants-ci/workflow: The 40ants-ci/workflow system
40ants-ci/workflow: The 40ants-ci/workflow package

A
action: Public classes

B
build-docs: Public classes

C
ci: Private classes
Class, action: Public classes
Class, build-docs: Public classes
Class, ci: Private classes
Class, critic: Public classes
Class, docs: Private classes
Class, job: Public classes
Class, linter: Public classes
Class, lisp-job: Public classes
Class, run-tests: Public classes
Class, sh: Public classes
Class, step: Public classes
Class, workflow: Private classes
critic: Public classes

D
docs: Private classes

F
File, 40ants-ci.asd: The 40ants-ci/40ants-ci․asd file
File, file-type.lisp: The 40ants-ci/core/file-type․lisp file
File, file-type.lisp: The 40ants-ci/github/file-type․lisp file
File, file-type.lisp: The 40ants-ci/utils/file-type․lisp file
File, file-type.lisp: The 40ants-ci/vars/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/docs/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/lisp-job/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/job/file-type․lisp file
File, file-type.lisp: The 40ants-ci/steps/action/file-type․lisp file
File, file-type.lisp: The 40ants-ci/steps/step/file-type․lisp file
File, file-type.lisp: The 40ants-ci/steps/sh/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/linter/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/critic/file-type․lisp file
File, file-type.lisp: The 40ants-ci/jobs/run-tests/file-type․lisp file
File, file-type.lisp: The 40ants-ci/ci/file-type․lisp file
File, file-type.lisp: The 40ants-ci/workflow/file-type․lisp file
File, file-type.lisp: The 40ants-ci/changelog/file-type․lisp file
file-type.lisp: The 40ants-ci/core/file-type․lisp file
file-type.lisp: The 40ants-ci/github/file-type․lisp file
file-type.lisp: The 40ants-ci/utils/file-type․lisp file
file-type.lisp: The 40ants-ci/vars/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/docs/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/lisp-job/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/job/file-type․lisp file
file-type.lisp: The 40ants-ci/steps/action/file-type․lisp file
file-type.lisp: The 40ants-ci/steps/step/file-type․lisp file
file-type.lisp: The 40ants-ci/steps/sh/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/linter/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/critic/file-type․lisp file
file-type.lisp: The 40ants-ci/jobs/run-tests/file-type․lisp file
file-type.lisp: The 40ants-ci/ci/file-type․lisp file
file-type.lisp: The 40ants-ci/workflow/file-type․lisp file
file-type.lisp: The 40ants-ci/changelog/file-type․lisp file

J
job: Public classes

L
linter: Public classes
lisp-job: Public classes

P
Package, 40ants-ci: The 40ants-ci package
Package, 40ants-ci/changelog: The 40ants-ci/changelog package
Package, 40ants-ci/ci: The 40ants-ci/ci package
Package, 40ants-ci/github: The 40ants-ci/github package
Package, 40ants-ci/jobs/critic: The 40ants-ci/jobs/critic package
Package, 40ants-ci/jobs/docs: The 40ants-ci/jobs/docs package
Package, 40ants-ci/jobs/job: The 40ants-ci/jobs/job package
Package, 40ants-ci/jobs/linter: The 40ants-ci/jobs/linter package
Package, 40ants-ci/jobs/lisp-job: The 40ants-ci/jobs/lisp-job package
Package, 40ants-ci/jobs/run-tests: The 40ants-ci/jobs/run-tests package
Package, 40ants-ci/steps/action: The 40ants-ci/steps/action package
Package, 40ants-ci/steps/sh: The 40ants-ci/steps/sh package
Package, 40ants-ci/steps/step: The 40ants-ci/steps/step package
Package, 40ants-ci/utils: The 40ants-ci/utils package
Package, 40ants-ci/vars: The 40ants-ci/vars package
Package, 40ants-ci/workflow: The 40ants-ci/workflow package

R
run-tests: Public classes

S
sh: Public classes
step: Public classes
System, 40ants-ci: The 40ants-ci system
System, 40ants-ci/changelog: The 40ants-ci/changelog system
System, 40ants-ci/ci: The 40ants-ci/ci system
System, 40ants-ci/core: The 40ants-ci/core system
System, 40ants-ci/github: The 40ants-ci/github system
System, 40ants-ci/jobs/critic: The 40ants-ci/jobs/critic system
System, 40ants-ci/jobs/docs: The 40ants-ci/jobs/docs system
System, 40ants-ci/jobs/job: The 40ants-ci/jobs/job system
System, 40ants-ci/jobs/linter: The 40ants-ci/jobs/linter system
System, 40ants-ci/jobs/lisp-job: The 40ants-ci/jobs/lisp-job system
System, 40ants-ci/jobs/run-tests: The 40ants-ci/jobs/run-tests system
System, 40ants-ci/steps/action: The 40ants-ci/steps/action system
System, 40ants-ci/steps/sh: The 40ants-ci/steps/sh system
System, 40ants-ci/steps/step: The 40ants-ci/steps/step system
System, 40ants-ci/utils: The 40ants-ci/utils system
System, 40ants-ci/vars: The 40ants-ci/vars system
System, 40ants-ci/workflow: The 40ants-ci/workflow system

W
workflow: Private classes

Jump to:   4  
A   B   C   D   F   J   L   P   R   S   W