stack-orchestrator/app/data/stacks/build-support
2023-09-01 11:15:07 -04:00
..
README.md match tokens (#388) 2023-05-09 15:23:56 -04:00
stack.yml typo (#515) 2023-09-01 11:15:07 -04:00

Build Support Stack

Instructions

JS/TS/NPM builds need an npm registry to store intermediate package artifacts. This can be supplied by the user (e.g. using a hosted registry or even npmjs.com), or a local registry using gitea can be deployed by stack orchestrator. To use a user-supplied registry set these environment variables:

CERC_NPM_REGISTRY_URL and CERC_NPM_AUTH_TOKEN

Leave CERC_NPM_REGISTRY_URL un-set to use the local gitea registry.

1. Build support containers

Note: the scheme/gerbil container is excluded as it isn't currently required for the package registry.

$ laconic-so --stack build-support build-containers

2. Deploy Gitea Package Registry

$ laconic-so --stack package-registry setup-repositories
$ laconic-so --stack package-registry build-containers 
$ laconic-so --stack package-registry deploy up
[+] Running 3/3
 ⠿ Network laconic-aecc4a21d3a502b14522db97d427e850_gitea       Created                                                                                    0.0s
 ⠿ Container laconic-aecc4a21d3a502b14522db97d427e850-db-1      Started                                                                                    1.2s
 ⠿ Container laconic-aecc4a21d3a502b14522db97d427e850-server-1  Started                                                                                    1.9s
New user 'gitea_admin' has been successfully created!
This is your gitea access token: 84fe66a73698bf11edbdccd0a338236b7d1d5c45. Keep it safe and secure, it can not be fetched again from gitea.
To use with laconic-so set this environment variable: export CERC_NPM_AUTH_TOKEN=84fe66a73698bf11edbdccd0a338236b7d1d5c45
Created the organization cerc-io
Gitea was configured to use host name: gitea.local, ensure that this resolves to localhost, e.g. with sudo vi /etc/hosts
Success, gitea is properly initialized
$

Note: the above commands can take several minutes depending on the specs of your machine.

3. Configure the hostname gitea.local

How to do this is OS-dependent but usually involves editing a hosts file. For example on Linux add this line to the file /etc/hosts (needs sudo):

127.0.0.1       gitea.local

Test with:

$ ping gitea.local
PING gitea.local (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.147 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.033 ms

Although not necessary in order to build and publish packages, you can now access the Gitea web interface at: http://gitea.local:3000 using these credentials: gitea_admin/admin1234 (Note: please properly secure Gitea if public internet access is allowed).

Now npm packages can be built:

Build npm Packages

Ensure that CERC_NPM_AUTH_TOKEN is set with the token printed above when the package-registry stack was deployed (the actual token value will be different than shown in this example):

$ export CERC_NPM_AUTH_TOKEN=84fe66a73698bf11edbdccd0a338236b7d1d5c45
$ laconic-so build-npms --include laconic-sdk,laconic-registry-cli