Functionality for saving/restoring artifacts. This is similar to caches, but where caches are used between the same jobs in different builds, artifacts are used for different jobs in the same build. Artifacts can also be exposed to the outside world.
Functionality for saving/restoring artifacts. This is similar to caches, but where caches are used between the same jobs in different builds, artifacts are used for different jobs in the same build. Artifacts can also be exposed to the outside world.
Blob storage functionality, used to store and restore large files or entire directories.
Blob storage functionality, used to store and restore large files or entire directories.
Functions for working with the build object in the runtime. This represents the current build.
Functions for working with the build object in the runtime. This represents the current build.
Functions for invoking the build script API.
Functions for invoking the build script API.
Functions for setting up a build script API. The build runner starts its own API server, which is only accessible by the build script and any containers it starts. This is for security reasons, since the build script is untrusted code. Restricting access to the API server is done on infra level, by setting up network security rules. Piping all traffic through the build runner also ensures that the global API will not be overloaded by malfunctioning (or misbehaving) builds.
Functions for setting up a build script API. The build runner starts its own API server, which is only accessible by the build script and any containers it starts. This is for security reasons, since the build script is untrusted code. Restricting access to the API server is done on infra level, by setting up network security rules. Piping all traffic through the build runner also ensures that the global API will not be overloaded by malfunctioning (or misbehaving) builds.
Functions for working with downloaded archives
Functions for working with downloaded archives
Functions to configure container images on a build step
Functions to configure container images on a build step
Core build script functionality. This is used by build scripts to create the configuration which is then executed by the configured runner. Which runner is configured or active depends on the configuration of the MonkeyCI application that executes the script.
Core build script functionality. This is used by build scripts to create the configuration which is then executed by the configured runner. Which runner is configured or active depends on the configuration of the MonkeyCI application that executes the script.
No vars found in this namespace.
Functionality for saving/restoring caches. This uses blobs.
Functionality for saving/restoring caches. This uses blobs.
Event handlers for commands
Event handlers for commands
Configuration functionality. This reads the application configuration from various sources, like environment vars or command-line args. The configuration is structured in a hierarchy and optionally some values are converted. Then this configuration is used to add any 'constructor functions', that are then used to create new functions to do some actual work. This allows us to change the behaviour of the application with configuration, but also makes it possible to inject dummy functions for testing purposes.
Configuration functionality. This reads the application configuration from various sources, like environment vars or command-line args. The configuration is structured in a hierarchy and optionally some values are converted. Then this configuration is used to add any 'constructor functions', that are then used to create new functions to do some actual work. This allows us to change the behaviour of the application with configuration, but also makes it possible to inject dummy functions for testing purposes.
Build script configuration functions, used by the process controller to create a valid configuration that can then be read by the build script runner.
Build script configuration functions, used by the process controller to create a valid configuration that can then be read by the build script runner.
Functions for handling sidecar configuration
Functions for handling sidecar configuration
Generic functionality for running containers
Generic functionality for running containers
Container runner that invokes an endpoint on the build api. This is meant to be used by child processes that do not have full infra permissions.
Container runner that invokes an endpoint on the build api. This is meant to be used by child processes that do not have full infra permissions.
Container runner implementation that uses OCI container instances.
Container runner implementation that uses OCI container instances.
Functions for running containers using Podman. We don't use the api here, because it requires a socket, which is not always available. Instead, we invoke the podman command as a child process and communicate with it using the standard i/o streams.
Functions for running containers using Podman. We don't use the api here, because it requires a socket, which is not always available. Instead, we invoke the podman command as a child process and communicate with it using the standard i/o streams.
Functions for configuring promtail containers. This is not a container driver, but a utility namespace that is in turn used when pushing build logs to Loki.
Functions for configuring promtail containers. This is not a container driver, but a utility namespace that is in turn used when pushing build logs to Loki.
Core namespace for the Monkey CI app. This contains the entrypoint which processes the configuration. This configuration determines whether the application runs as a server, execute a single script, which type of runner is enabled, etc...
Core namespace for the Monkey CI app. This contains the entrypoint which processes the configuration. This configuration determines whether the application runs as a server, execute a single script, which type of runner is enabled, etc...
Credit calculation functions
Credit calculation functions
Functions for working with cuids, which are like uuids but are a bit better to handle for humans.
Functions for working with cuids, which are like uuids but are a bit better to handle for humans.
Functionality for serializing objects to edn and deserializing them back.
Functionality for serializing objects to edn and deserializing them back.
Custom queries for builds
Custom queries for builds
Core functionality for database entities. Allows to store/retrieve basic entities.
Core functionality for database entities. Allows to store/retrieve basic entities.
Customer specific query functions
Customer specific query functions
Build parameters queries
Build parameters queries
Repository specific query functions
Repository specific query functions
Special type treatments for sql
Special type treatments for sql
Webhook related functionality
Webhook related functionality
Functions for working with errors and exceptions. This provides a uniform way to handle exceptions and convert them into a usable format for internal propagation and to give useful feedback to the user.
Functions for working with errors and exceptions. This provides a uniform way to handle exceptions and convert them into a usable format for internal propagation and to give useful feedback to the user.
Events implementation that uses the build api to send events
Events implementation that uses the build api to send events
Functions for doing events over http
Functions for doing events over http
Uses JMS to connect to an event broker. Can also starts its own broker server, although this is mostly meant for development and testing purposes.
Uses JMS to connect to an event broker. Can also starts its own broker server, although this is mostly meant for development and testing purposes.
Manifold-based implementation of event poster and receiver
Manifold-based implementation of event poster and receiver
Functionality for working with script extensions. Extensions are a way for third party libraries to add functionality to scripts, that is easy to activate and can also be used in yaml-type scripts. You could of course also add regular functions to invoke, but this is not easy to use, especially when using container jobs. Extensions do this by registering themselves under a specific namespaced keyword. If this key is found in job properties, the associated extension code is executed. Extensions can be executed before or after a job (or both).
Functionality for working with script extensions. Extensions are a way for third party libraries to add functionality to scripts, that is easy to activate and can also be used in yaml-type scripts. You could of course also add regular functions to invoke, but this is not easy to use, especially when using container jobs. Extensions do this by registering themselves under a specific namespaced keyword. If this key is found in job properties, the associated extension code is executed. Extensions can be executed before or after a job (or both).
Clone and checkout git repos. This is mostly a wrapper for clj-jgit
Clone and checkout git repos. This is mostly a wrapper for `clj-jgit`
Handles job execution and ordering in a build
Handles job execution and ordering in a build
Handles log configuration and how to process logs from a build script
Handles log configuration and how to process logs from a build script
Logging implementation that sends to Loki. This is useful for the container implementation, where promtail is problematic because it never shuts down.
Logging implementation that sends to Loki. This is useful for the container implementation, where promtail is problematic because it never shuts down.
Oracle cloud specific functionality
Oracle cloud specific functionality
Process execution functions. Executes build scripts in a separate process, using clojure cli tools.
Process execution functions. Executes build scripts in a separate process, using clojure cli tools.
Functionality to export metrics to prometheus format, or push them to a pushgateway.
Originally we used micrometer-clj
, but it's really old and incompatible with recent
versions of the Prometheus libs. Since we're fixed on Prometheus (for now), it's not
necessary to maintain all the other formats, so the micrometer layer was essentially
ballast. This namespace accesses the Prometheus code directly.
Functionality to export metrics to prometheus format, or push them to a pushgateway. Originally we used `micrometer-clj`, but it's really old and incompatible with recent versions of the Prometheus libs. Since we're fixed on Prometheus (for now), it's not necessary to maintain all the other formats, so the micrometer layer was essentially ballast. This namespace accesses the Prometheus code directly.
Contains all (or most of) the protocols used in the app. This is useful to avoid circular dependencies.
Contains all (or most of) the protocols used in the app. This is useful to avoid circular dependencies.
Provides functions for reporting output. This can be logging, or printing to stdout, or formatting as json, etc...
Provides functions for reporting output. This can be logging, or printing to stdout, or formatting as json, etc...
Reporter that prints to the console using coloring.
Reporter that prints to the console using coloring.
Defines runner functionality. These depend on the application configuration. A runner is able to execute a build script.
Defines runner functionality. These depend on the application configuration. A runner is able to execute a build script.
Runner that can be configured to run builds directly from the server.
Runner that can be configured to run builds directly from the server.
No vars found in this namespace.
The runtime can be considered the 'live configuration'. It is created from the configuration, and is passed on to the application modules. The runtime provides the information (often in the form of functions) needed by the modules to perform work. This allows us to change application behaviour depending on configuration, but also when testing.
Thie namespace also provides some utility functions for working with the context. This is more stable than reading properties from the runtime directly.
The runtime can be considered the 'live configuration'. It is created from the configuration, and is passed on to the application modules. The runtime provides the information (often in the form of functions) needed by the modules to perform work. This allows us to change application behaviour depending on configuration, but also when testing. Thie namespace also provides some utility functions for working with the context. This is more stable than reading properties from the runtime directly.
Functions for setting up a runtime for application (cli or server)
Functions for setting up a runtime for application (cli or server)
Functions for creating a runtime for build scripts
Functions for creating a runtime for build scripts
Functions for creating a runtime for a build-aware environment for the sidecar
Functions for creating a runtime for a build-aware environment for the sidecar
Functions for working with storage ids
Functions for working with storage ids
Sidecar specific functions
Sidecar specific functions
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
Spec definitions for build. The build object in the runtime and events that contain builds, scripts or jobs should conform to these specs.
Spec definitions for build. The build object in the runtime and events that contain builds, scripts or jobs should conform to these specs.
No vars found in this namespace.
Specs for app configurations
Specs for app configurations
No vars found in this namespace.
Container related config and context specs
Container related config and context specs
No vars found in this namespace.
Job context spec
Job context spec
No vars found in this namespace.
Spec for database entities. This can be useful to auto-generate database record entities for testing, but also to validate entities before persisting them.
Spec for database entities. This can be useful to auto-generate database record entities for testing, but also to validate entities before persisting them.
Spec for application entities.
Spec for application entities.
No vars found in this namespace.
Spec definitions for events
Spec definitions for events
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
No vars found in this namespace.
Specs for sidecar configuration
Specs for sidecar configuration
No vars found in this namespace.
Data storage functionality. Next to basic storage implementations, this ns also contains a lot of functions for working with storage entities. Many of these are overridden by implementation-specific functions, and so implementations here don't focus on efficiency. They are merely used in tests.
Data storage functionality. Next to basic storage implementations, this ns also contains a lot of functions for working with storage entities. Many of these are overridden by implementation-specific functions, and so implementations here don't focus on efficiency. They are merely used in tests.
Cached storage implementation. It wraps another storage and adds caching to it. This currently is a very naive implementation. It should be expanded with event processing, in case there are multiple replicas. Or we should replace it with a 'real' database.
Cached storage implementation. It wraps another storage and adds caching to it. This currently is a very naive implementation. It should be expanded with event processing, in case there are multiple replicas. Or we should replace it with a 'real' database.
No vars found in this namespace.
File storage implementation. Useful for local or develop runs. It stores all information in local .edn files.
File storage implementation. Useful for local or develop runs. It stores all information in local .edn files.
Storage implementation that uses an SQL database for persistence. This namespace provides a layer on top of the entities namespace to perform the required queries whenever a document is saved or loaded.
Storage implementation that uses an SQL database for persistence. This namespace provides a layer on top of the entities namespace to perform the required queries whenever a document is saved or loaded.
Time related utility functions
Time related utility functions
Specific customer api routes
Specific customer api routes
API functions for customer join requests
API functions for customer join requests
Api functions for managing build parameters
Api functions for managing build parameters
Authentication and authorization functions
Authentication and authorization functions
Bitbucket specific endpoints, mainly for authentication or push callbacks.
Bitbucket specific endpoints, mainly for authentication or push callbacks.
Functionality specific for Github
Functionality specific for Github
Handler for the web server
Handler for the web server
OAuth2 flow support handlers
OAuth2 flow support handlers
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close