-
Notifications
You must be signed in to change notification settings - Fork 0
Automated build tool
License
hills/luthier
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Luthier: automated builds ========================= Luthier will automate the fetching and building of something, deciding when to keep the results and notify developers. It has been used successfully to make simple CI/CD pipelines. Motivations: * Lightweight: usable for personal projects * 'Unix-like' feel * Don't force use of specific UIDs, GIDs etc.; leave up to the user * 'Silent on success', low noise * Good defaults * Use with any version control, not just Git * Choose your own build environment, eg. default environment, or docker The 'build' step can mean anything you want; compile, test, deploy. Installation ------------ The default is to install to /usr/local: $ make install # as root Setting up ---------- Create a 'builds' directory to use as scratch/workspace: $ mkdir mywork In that directory, a script defines a set of actions; $ vi builds/luthier.sh Take a look at the "example" directory for what these functions are and why they exist. Running ------- This command will run the most recent automated build, and notify where necessary: $ luthier --verbose --builds mywork build It's designed to be run from crontab or non-interactive environment, by being silent except on fatal errors; build errors are emailed separately. This is the command to put in a crontab: $ luthier --builds /path/to/mywork build Other useful commands are: $ luthier freshen # force rebuild even if fingerprints match $ luthier list # list current builds $ luthier purge # purge old builds The default path for builds is the current directory, so interactive commands are easy to use; eg. if you want to see what's going on: $ cd /path/to/mywork $ luthier Code ---- The code is Bash shell, developed on Linux with GNU utilities. In general there is a leaning towards future portability and use of Bash-specific features sparingly. Example ------- Viewing the list of builds: /project/builds$ luthier 20210413.01 11:35 355592 complete => Tue 11:45 (joe) 20210415.00 10:45 492843 complete 20210415.01 11:15 35c9f3 fail 20210415.02 12:30 7f62e4 fail 20210415.03 16:17 a67293 complete => Thu 16:25 (mark) 20210415.04 16:31 977517 complete 20210415.05 17:10 0bfae7 complete 20210415.06 17:15 f83087 complete 20210415.07 17:40 300ba8 complete => Fri 09:18 (mark) 20210416.01 11:50 bd65e1 complete Currently: complete at bd65e1
About
Automated build tool
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published