1 {{{header(infra/quickstart,
4 Infra Quickstart Guide)}}}
5 #+property: header-args :dir /home/ellis/dev/comp/infra/
7 The CC
=infra= project can be thought of as one big Makefile, and
16 - *Minimum Dependencies* 23 Check that the current host is a qualified builder.
25 This will interrogate the system, checking for minimum
26 requirements. If any requirement isn't met an error is
27 signaled. Environment variables are also reported here, but not
28 set. On completion, the file
=host.sxp= is written to the current
31 The minimum software dependencies above should be installed via your
32 system's package manager. The remaining dependencies are installed via
33 the
=install.sh= script.
40 Provision a pre-configured profile for this host.
42 The default profile builds most dependencies from source. Depending on
43 your hardware this can take a very long time and may not be
44 appropriate anyway. For example a 'guest' builder may want to be
45 provisioned some dependencies from the host and install cached
50 Install core dependencies.
52 This script may install any of the following depending on
55 - shared libraries and headers
81 - download the compressed
=infra= lisp core from
82 https://packy.compiler.company
83 - compile and load
=bootstrap.lisp= 85 Upon completion a local
=stash= directory is provisioned. At this
86 point we no longer need to depend on shell scripting as we have a
87 fully interactive Lisp environment to hack on our builds with.
89 From here, you may run
=skel inspect= to inspect the infra
=skelfile= 90 and select a target to build on your machine or in a container. Use
91 =skel --help= for a list of other commands.
94 Deploy
=infra= builds to a remote.
96 Deployment involves 'packing' a target found in
=stash=, archiving it,
97 compressing it, and sending it to a remote location possibly with a
98 signature, checksum, or other metadata, and possibly encrypted. A
99 'package' may also be a raw directory of plain-text files. It's a very
100 loose term. Where the package ends up and how it is packed depends on
101 the build-config and skelfile slots.
103 Production deployments end up at https://packy.compiler.company.