a library to define a continuous delivery pipeline in code
either
step to be killed when one of its children was killed (#118)with-workspace
when the workspace contained circular symlinks (#112)lambdacd.event-bus/publish
is now deprecated in favor of lambdacd.event-bus/publish!!
and lambdacd.event-bus/publish!
(to be able to properly publish from within a go-block)lambdacd.steps.support/always-chain-steps
and lambdacd.steps.support/always-chaining
to support chaining
build-steps without stopping on error, to allow post-processing steps, e.g. test-report processors. (#108)
Check the wiki for detailslambdacd.steps.support/chain-steps
with a vector of steps, use varargs insteadlambdacd.steps.support/chain
, use chaining
insteadChanged the default persistence format from JSON to EDN to fix #101. This change should be backwards and forwards compatible (i.e. you keep your history when upgrading to 0.8.0 and when downgrading to an earlier version). However, if your history is critical, consider backing up your LambdaCD home-dir just in case.
Removed deprecated function lambdacd.presentation.pipeline_state/most-recent-build-number-in
LambdaCD no longer depends on Logback as a logging implementation and gives you more freedom to choose a logging implementation. If you see the following message you need to add a dependency to a library that's compatible with SLF4J:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
The default dependencies were:
[ch.qos.logback/logback-core "1.0.13"]
[ch.qos.logback/logback-classic "1.0.13"]
LambdaCD no longer depends on ring-server and leaves the decision on how you serve the UI to you. If you see the following error, you were probably using ring-server and need to add it to your dependencies:
Exception in thread "main" java.io.FileNotFoundException: Could not locate ring/server/standalone__init.class or ring/server/standalone.clj on classpath.
The default dependency was:
[ring-server "0.3.1"]
\r
in console output (#88)args
and ctx
if they were referred to via the namespace (#93)lambdacd.presentation.pipeline-state/overall-build-status
lambdacd.presentation.pipeline-state/latest-most-recent-update
lambdacd.presentation.pipeline-state/earliest-first-update
lambdacd.presentation.pipeline-state/build-duration
lambdacd.internal.step-id
to lambdacd.step-id
to officially make it public.
In case someone was using the internal namespace, it is still there but is considered DEPRECATED and will be removed in subsequent releases.with-workspace
now creates temporary directories in the home-dir (#79)lambdacd.presentation.pipeline-state/most-recent-build-number-in
seems to be unused and now considered DEPRECATED.
Will be removed in subsequent releases.(ui-server/ui-for pipeline-def pipeline-state ctx)
(deprecated since 0.4.3). Use (ui-server/ui-for pipeline)
instead.with-workspace
container step that allows users to run operations in the context of a clean workspace on disk (#72)either
no longer aggregates to failure if only some children failed (#67)in-parallel
no longer aggregates to failure while other children are still running (#68)successful-when-one-successful
status aggregation only fails if all statuses are :failure
(#67)successful-when-all-successful-sequential
status aggregation doesn't fail while other steps are still running (#68)UI: Displaying duration of each build step (#34)
Prevent retriggering of steps that have dependencies to previous steps by adding :depends-on-previous-steps true
to metadata:
(defn ^{:depends-on-previous-steps true} publish-artifact [{cwd :cwd} ctx]
(shell/bash ctx cwd
"./publish.sh"))
This can be useful if several steps work on a workspace created by a nested step (such as with-git
) and rely on the products of previous steps.
See #36 for details.
Improved calculation of build duration for retriggered pipelines (#30)
UI: collapsing child steps by default (#59)
Add feature to alias build steps in UI:
; this displays "trigger" instead of "either" in UI
(alias "trigger"
(either
wait-for-manual-trigger
wait-for-repo))
UI: Added feedback after killing a step
Killing a shell/bash
-step now kills the whole process tree spawned by it. This helps in cases where the step spawns
longer-running processes and bash doesn't pass on the TERM signal to its children)
Fixed UI bug where pipeline was no longer visible for long step output