Ever since removing Jenkins from our CI, we no longer make use of labels to affect tests.
Openshift Installer
The CoreOS and OpenShift teams are now working together to integrate Tectonic and OpenShift into a converged platform. See the CoreOS blog for any additional details: https://coreos.com/blog/coreos-tech-to-combine-with-red-hat-openshift
Hacking
These instructions can be used for AWS:
-
Set you access-key and secret in
~/.aws/credentials. You can create credentials in the IAM console, as documented here and here. -
Build the project
bazel build tarballNote: the project can optionally be built without installing Bazel, provided Podman is installed:
podman run --rm -v $PWD:$PWD:Z -w $PWD quay.io/coreos/tectonic-builder:bazel-v0.3 bazel --output_base=.cache build tarball -
Extract the tarball
tar -zxf bazel-bin/tectonic-dev.tar.gz cd tectonic-dev -
Add binaries to $PATH
export PATH="${PWD}/installer:${PATH}" -
Edit Tectonic configuration file including the $CLUSTER_NAME
$EDITOR examples/tectonic.aws.yaml -
Init Tectonic CLI
tectonic init --config=examples/tectonic.aws.yaml -
Install Tectonic cluster
tectonic install --dir=$CLUSTER_NAME -
Visit
https://{$CLUSTER_NAME}-api.${BASE_DOMAIN}:6443/console/. You may need to ignore a certificate warning if you did not configure a CA known to your browser. Log in with the admin credentials you configured intectonic.aws.yaml. -
Teardown Tectonic cluster
tectonic destroy --dir=$CLUSTER_NAME
Managing Dependencies
Go
We follow a hard flattening approach; i.e. direct and inherited dependencies are installed in the base vendor/.
Dependencies are managed with glide but committed directly to the repository. If you don't have glide, install the latest release from https://glide.sh/. We require version 0.12 at a minimum.
The vendor directory is pruned using glide-vc. Follow the installation instructions in the project's README.
To add a new dependency:
- Edit the
glide.yamlfile to add your dependency. - Ensure you add a
versionfield for the sha or tag you want to pin to. - Revendor the dependencies:
rm glide.lock
glide install --strip-vendor
glide-vc --use-lock-file --no-tests --only-code
bazel run //:gazelle
If it worked correctly it should:
- Clone your new dep to the
/vendordir and check out the ref you specified. - Update
glide.lockto include your new package, add any transitive dependencies and update its hash. - Regenerate BUILD.bazel files.
For the sake of your fellow reviewers, commit vendored code separately from any other changes.
Tests
See tests/README.md.