#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2026-02-05

I've made a new release of my continuous integration engine, Ambient, version 0.12.0. There's now an HTML run log, as opposed to an enormous grey wall of text that nobody else understands than me. The new log is still in need of improvement, but I've done the hard work of producing JSON Lines data and the rest is easier.

Also updated the Radicle integration so that Radicle CI users get this.

Old log: callisto.liw.fi/ambient-log/ra
New log: callisto.liw.fi/ambient-log/ra

#CI
#Ambient #AmbientCI
#RadicleCI

Lars Wirzeniusliw@toot.liw.fi
2025-12-15

I'm making progress in changing Ambient so that using generic "cloud images" is feasible. Debian, for example, have some at cloud.debian.org/images/cloud/

The idea here is to avoid building and distributing a custom image for Ambient, to make it easier to run CI in different operating systems. As long an image supports cloud-init, Ambient needs to be able to use it. Not there yet, but making progress.

#Ambient #AmbientCI #cloudImage #continuousIntegration

Lars Wirzeniusliw@toot.liw.fi
2025-11-02
Lars Wirzeniusliw@toot.liw.fi
2025-10-12

@cehteh As it happens, I don't plan to add email support to Ambient, at least in the foreseeable future. You can run it standalone, and then results and logs are right there your machine. To run it as a service, I'm piggy-backing on Radicle so that I don't have to write all parts for the server and distributed system, and Radicle has another way of communicating CI results across its network. Radicle CI also produces RSS feeds.

#ambientci #Radicle

2025-10-11

@liw

Do you plan to add email support to #ambientci ?

A final step that sends a success/failure message to *one* email address, including the logs would be nice.

Since this would require network/email access of course this is something to argue about. Also this should be strictly restricted to only one email address which is fixed in ambient.yaml. Forwarding this mail to anyone else should be the responsibility of the receiver (like diverting it to a Mailinglist, send it to git comitter/author, doing whatever else).

Lars Wirzeniusliw@toot.liw.fi
2025-02-28

@algernon Automating releases is tricky business, and in my experience somewhat tied to the project. There are generalities, of course.

This is an area where I'll want to add support to Ambient to automate the mechanical parts as best I can, but that's not happening soon. Too many other things to do first.

#release #softwareDevelopment #continuousIntegration #AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-23

Ambient now works with images with cloud-init.

Ambient still needs to add support for pre-installing build dependencies to a generic image. It probably needs some infrastructure for managing images, too.

It's no longer necessary to build a custom image for Ambient, although will continue to be supported.

Ambient CI is my hobby project to build a CI engine that allows me to run CI for other people without compromising on security.

ambient.liw.fi/

#AmbientCI #CI

Lars Wirzeniusliw@toot.liw.fi
2024-11-23

I've managed to use a Debian generic cloud image with Ambient, with cloud-init. But oh my, this code is messy now. Needs cleaning up. When will I learn about coupling and cohesion?

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-04

A little change to wake up my brain on Monday morning.

In Ambient CI the component that actually executes CI plan actions has been called "run-ci" since the beginning. I decided that that's not a good name. It's now called "ambient-execute-plan".

Ambient CI is my hobby project to build a CI engine that allows me to run CI for other people without compromising on security.

ambient.liw.fi/

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-03

Changed ambient-driver, the command line tool to run a CI for Ambient, so that the filename to the list of CI projects can be set in the configuration file or via a command line option. This makes the tool more convenient to use.

Ambient CI is my hobby project to build a CI engine that allows me to run CI for other people without compromising on security.

ambient.liw.fi/

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-02

Also experimented using generic "cloud images" and cloud-init for Ambient, such as the ones made by #Debian. So far I've built custom virtual machine images but that gets tiresome quickly. My experiment proved that the cloud-init approach works, but I didn't change Ambient to use this approach yet. Small careful steps, not courageous leaps that lead to stumbling.

cloud.debian.org/images/cloud/

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-02

Changed some sub-commands of the ambient-driver program to output JSON instead of ad hoc text format so that the output is nicer to consume for other programs.

Ambient CI is my hobby project to build a CI engine that allows me to run CI for other people without compromising on security.

ambient.liw.fi/

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-11-01

I've just pushed the refactoring of ambient-driver to codeberg, to make the organization of the code a little nicer: the subcommands are now implemented in src/bin/cmd/*.rs, instead of src/run.rs.

This should be entirely invisible to users, particularly since I'm the only one.

codeberg.org/ambient/ambient-d

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-10-26

Changed #AmbientCI to store the run log in a per-project directory.This fixes a long time pain point where every run log is written to the same file, overwriting what was there already. A small change, but big improvement in usability.

(You might ask why not do it this way originally? I'm trying not to anticipate needs until I can write down a requirement.)

Ambient CI is my hobby project to implement a CI engine.

ambient.liw.fi/

Lars Wirzeniusliw@toot.liw.fi
2024-10-25

Had a moment of free time this morning before starting work. Changed ambient-driver to have a default log level of INFO if user has not set the AMBIENT_LOG environment variable. If the variable is set, that is used to initialize logging.

A very minor, but still worthwhile change, I think.

In other news, ambient-driver is in not ergonomic to use. I will need to address that in the future.

#AmbientCI

Lars Wirzeniusliw@toot.liw.fi
2024-10-16

I've gotten stuck in a large change I want to make to #AmbientCI: I want it to run all the actions in a VM, even the ones that need network access. To unstick myself, I'm going to extract some parts of the larger change that can be merged earlier to make the rest easier to build.

It's things like changes to refactor to make the ultimate change easier, or adding logging or other debugging aids to make later development easier.

Frequent merging makes sense even in solo projects.

Lars Wirzeniusliw@toot.liw.fi
2024-01-07

I've managed to use my super secret hobby project (Ambient) to do a thing to help my other hobby project (Subplot) move forward. This is dangerously similar to progress. If I keep this up, I'm going to have to make the secret one public and then everyone will know what it is. What good can come of that?

#Subplot #AmbientCI

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst