Skip to content

Instantly share code, notes, and snippets.

@akomakom
akomakom / jenkins-groovy-system-script.groovy
Last active October 21, 2022 17:32 — forked from rb2k/gist:8372402
A jenkins script to clean up workspaces on slaves. On all slaves with less than X free GB, this script removes /slaves/workspace/* if slave is idle. If not idle, it removes /full/job/workspace/path for each job that isn't currently running. There are two versions: a "System Groovy Script" and a Jenkinsfile (Pipeline script)
/**
Jenkins System Groovy script to clean up workspaces on all slaves.
Check if a slave has < X GB of free space, perform cleanup if it's less.
If slave is idle, wipe out everything in the workspace directory as well any extra configured directories.
If slave is busy, wipe out individual job workspace directories for jobs that aren't running.
Either way, remove custom workspaces also if they aren't in use.
**/
import hudson.model.*;
@akomakom
akomakom / README.md
Last active March 9, 2023 15:26
AWS Lambda function to kill forgotten instances, pure NodeJS

AWS Lambda function to kill old instances

A pure NodeJS function to kill select EC2 instances if they run longer than a defined period.

This is useful as a safety measure when using EC2 in CI and launching many instances.
A CI crash or user action could prevent proper cleanup, leaving expensive machines running forever (or until the next billing cycle when there is much screaming).

Instructions

@akomakom
akomakom / Readme Low Battery Warning Alert for Linux.md
Last active March 25, 2023 06:49
Play periodic sound when laptop battery is low, also when charger is plugged in/unplugged

Suitable for laptops that don't generate udev events when battery charge level changes (but do generate events when unplugged).

Uses MP3 files (use mine or make your own).
You can also change sound() to use a tone as in this example

Installation

  • Copy MP3 files to /usr/local/bin (or change the shell script)
  • Copy other files to the location specified at the top (change "CHANGE_TO_MY_USER" to the username you primarily use)
@akomakom
akomakom / SemVer.groovy
Last active February 1, 2024 19:58 — forked from michaellihs/SemVer.groovy
Semantic Versioning class for Groovy
/**
* This evolved from pure SemVer to any-length version with optional -suffix
* accepts any of:
* 1
* 1.2
* 1.2.3
* 1.2.3.4 (etc, no limit)
* 1.2.3-SNAPSHOT
*
* bump() also accepts index values, eg -1 (last component), -2 (second from end), etc: