Functions for creation jobs now accept two new arguments:
STEPS-BEFORE
argument allows to specify a list of steps to be performed before the job. For example, this can be used to install some system packages required for loadingASDF
systems during the job execution.STEPS-AFTER
argument is the same as previous one, but executes steps after the job.
Now dynamic space size can be given for lisp steps.
There are two ways to set it:
(build-docs
:asdf-system "cl-telegram-bot-docs"
:env (("DYNAMIC_SPACE_SIZE" . "4Gb")))
This way it will be applied only to the step of the documentation building, because docs-builder script allows to use such environment variable.
But if you CI
process fails to compile the ASDF
system because of the memory limit,
then you need to set dynamic space size on the earlier state - during "Setup Lisp"
step. For this case an argument DYNAMIC-SPACE-SIZE
can be given:
(build-docs
:asdf-system "cl-telegram-bot-docs"
:dynamic-space-size "4gb")
- Now you can specify
ENV
argument to40ants-ci/workflow:defworkflow
and any job. This should be an alist where keys are strings and values are evaluated during GitHub workflow generation phase. Read more inAdding env variables
section. - Also,
40ants-ci/jobs/autotag:autotag
function now ignoresTOKEN-PATTERN
argument ifENV
argument was given and hasGITHUB_TOKEN
value for whole job.
- When additional keyword arguments to
40ants-ci/steps/sh:sh
function are given, they are transformed into env variables. Previously, their names were taken as is. Now they are uppercased and dash symbols are replaced with underscores.
All jobs now use setup-lisp@v4 where internal caching was implemented.
Also all jobs were switched to from actions/checkout@v3
to actions/checkout@v4
action.
Jobs now use setup-lisp@v3 action where a fix to quicklisp-client is applied. This fix makes ql:quickload work with package-inferred systems.
If you want to use this fix in your own environments, you can find it here.
Use secrets.GITHUB_TOKEN
instead of secrets.DEPLOY_TRIGGER_TOKEN
and set required scopes for the token.
This way you don't have to setup a special secret for each repository or an organization.
New job class 40ants-ci/jobs/autotag:autotag
was added.
Use it like this:
(defworkflow release
:on-push-to "master"
:jobs ((40ants-ci/jobs/autotag:autotag)))
and it will search for new semver tags in the ChangeLog.md file and push them to the git.
Slots quicklisp
and lisp
were moved from class 40ants-ci/jobs/job:job
to 40ants-ci/jobs/lisp-job:lisp-job
.
Class 40ants-ci/jobs/critic:critic
was fixed for case when there are multiple critiques to ignore.
- Fixed installation of the Linter. Now it depends on
40ants-asdf-system
system.
- Now Linter does
qlot install --no-deps
and quickloads only those systems, which should be linted. - Also,
40ants-ci
system now inherits from40ants-asdf-system
system.
- Fixed warnings about
set-output
and outdated Node.js versions in checkout and cache actions.
- Fixed default value of asdf-systems slot of
40ants-ci/jobs/linter:linter
class. - Also, now linter accepts
CHECK-IMPORTS
argument and is able to warn on unused or missing imports in package-inferred systems.
- Fixed caching on
OSX
. Previously, job failed with/Users/runner/.roswell/bin/qlot: line 4: exec: ros: not found
error if:cache t
was given to a job running onOSX
and Roswell was restored from a cache.
40ants-ci/jobs/critic:critic
(1
2
) function's argumentIGNORE-CRITICUES
was renames to theIGNORE-CRITIQUES
argument.
- New job type "critic" was added. It advices how to make you Lisp code better.
Learn more about this job type at
Critic
section.
- Move the actions/checkout action from v1 to v2.
- Now multiple jobs of the same type can be listed in the same workflow.
- Also, you can change a job's name using
:NAME
argument.
- Now jobs
40ants-ci/jobs/linter:linter
(1
2
),40ants-ci/jobs/run-tests:run-tests
(1
2
) and40ants-ci/jobs/docs:build-docs
(1
2
) supportASDF-VERSION
argument.
- Fixed an occasional failure on
qlot update
inside linter workflow. Usually it happed when quicklisp distribution was updated andqlfile.lock
changed.
- Linter step was fixed to use default
ASDF
system if it wasn't specified explicitly.
- Supported
ERROR-ON-WARNINGS
argument for documentation builder. - Argument
ASD-SYSTEM
was renamed toASDF-SYSTEM
. - Moved this project's documentation to
40ANTS-DOC
system.
- Fixed the cache key to use
*.asd
files.
- Initial version.