Commit Graph

6 Commits (092dcee5084e486f2f8c726a1a5ad0e54574598f)

Author SHA1 Message Date
Dustin 9fab49928d ci: Update container image to Fedora 34 2021-11-09 18:07:59 -06:00
Dustin a68e7b04df ci: Update container image to Fedora 32 2020-05-30 12:33:08 -05:00
Dustin 53f2a8e365 ci: Install findutils in build environment
The *findutils* package is needed for the `find` command, which is used
at the end of the CI pipelines to remove the `sudo-pass` vault files.
2019-05-02 16:27:58 -05:00
Dustin b7381b3fb1 ci: Use lockable resource to enforce serial runs
It is important that only one configuration management job run at a
time. Currently, this is enforced by having only one agent with the
*ansible* label, and that agent has only one executor. This is not an
ideal solution, because it requires maintaining a separate machine for
this purpose.

The *Lockable Resources Plugin* provides an alternate solution to this
problem. Using this plugin, jobs can acquire an exclusive lock on a
"resource" that prevents other jobs that require the same resource from
running. Any job that starts while the lock is held will wait until it
is released before executing. This will enforce the same serial
execution policy, but does not require a separate, dedicated machine.
Jobs will be able to run on any executor with the appropriate label.

Using this option, it is now possible to run configuration management
jobs on the normal agents, defining the execution environment in a
Docker image, so the *cm0.pyrocufflink.blue* agent can be
decommissioned.
2019-05-02 09:58:20 -05:00
Dustin 38884cdb32 ci: Use dedicated slave instead of Docker
Using a dedicated slave node instead of a Docker container has a few
advantages:

* Persistent configuration is possible, without making weird assumptions
  (e.g. Jenkins UID/GID) in the Dockerfile
* Can limit concurrent deployments by controlling executor count on the
  node
2018-04-08 12:32:02 -05:00
Dustin 2272a9fedc ci: Begin continuous integration setup 2018-04-07 17:06:32 -05:00