28
|
1
|
#+title: infra/quickstart |
|
2
|
#+author: Richard Westhaver |
|
3
|
#+email: ellis@rwest.io |
|
4
|
#+description: Infra Quickstart Guide |
22
|
5
|
#+property: header-args :dir /home/ellis/comp/infra/ |
28
|
6
|
#+setupfile: ../../clean.theme |
20
|
7
|
- *Host Requirements* |
19
|
8
|
- x86_64 4 core CPU |
|
9
|
- 8G RAM |
|
10
|
- 32G Disk Space |
20
|
11
|
- Linux kernel |
|
12
|
|
|
13
|
- *Minimum Dependencies* |
|
14
|
- mercurial |
|
15
|
- git |
|
16
|
- zstd |
|
17
|
|
|
18
|
* TODO check.sh |
|
19
|
Check that the current host is a qualified builder. |
19
|
20
|
|
20
|
21
|
This will interrogate the system, checking for minimum |
|
22
|
requirements. If any requirement isn't met an error is |
|
23
|
signaled. Environment variables are also reported here, but not |
|
24
|
set. On completion, the file =host.sxp= is written to the current |
|
25
|
directory. |
16
|
26
|
|
20
|
27
|
The minimum software dependencies above should be installed via your |
|
28
|
system's package manager. The remaining dependencies are installed via |
|
29
|
the =install.sh= script. |
|
30
|
|
15
|
31
|
#+begin_src shell |
20
|
32
|
./check.sh |
15
|
33
|
#+end_src |
18
|
34
|
|
22
|
35
|
#+RESULTS: |
|
36
|
| STASH= | |
|
37
|
| STORE= | |
|
38
|
| DIST= | |
|
39
|
| PACKY_URL= | |
|
40
|
| VC_URL= | |
|
41
|
| INSTALL_PREFIX= | |
|
42
|
| CC= | |
|
43
|
| AR= | |
|
44
|
| HG= | |
|
45
|
| GIT= | |
|
46
|
| LISP= | |
|
47
|
| RUST= | |
|
48
|
| LD= | |
|
49
|
| SHELL=/bin/bash | |
|
50
|
| DEV= | |
|
51
|
| DEV_HOME= | |
|
52
|
| ID= | |
|
53
|
| WORKER= | |
|
54
|
| WORKER_ID= | |
|
55
|
| WORKER_HOME= | |
|
56
|
| CARGO_HOME= | |
|
57
|
| RUSTUP_HOME= | |
20
|
58
|
|
|
59
|
* TODO bootstrap.sh |
|
60
|
Bootstrap the core. |
|
61
|
|
23
|
62
|
- download and prepare target-specific dependencies |
|
63
|
- install the latest =sk= binary from https://packy.compiler.company |
|
64
|
to the stash |
20
|
65
|
- compile and load =bootstrap.lisp= |
|
66
|
|
|
67
|
Upon completion a local =stash= directory is provisioned. At this |
|
68
|
point we no longer need to depend on shell scripting as we have a |
|
69
|
fully interactive Lisp environment to hack on our builds with. |
|
70
|
|
|
71
|
From here, you may run =skel inspect= to inspect the infra =skelfile= |
|
72
|
and select a target to build on your machine or in a container. Use |
|
73
|
=skel --help= for a list of other commands. |
|
74
|
|
|
75
|
* TODO deploy.lisp |
|
76
|
Deploy =infra= builds to a remote. |
|
77
|
|
|
78
|
Deployment involves 'packing' a target found in =stash=, archiving it, |
|
79
|
compressing it, and sending it to a remote location possibly with a |
|
80
|
signature, checksum, or other metadata, and possibly encrypted. A |
|
81
|
'package' may also be a raw directory of plain-text files. It's a very |
|
82
|
loose term. Where the package ends up and how it is packed depends on |
|
83
|
the build-config and skelfile slots. |
|
84
|
|
|
85
|
Production deployments end up at https://packy.compiler.company. |
23
|
86
|
|
|
87
|
|
|
88
|
* TODO install.lisp |
|
89
|
Install core packages locally. |