tazjin / nixery

Container registry which transparently builds images using the Nix package manager. Canonical repository is https://cs.tvl.fyi/depot/-/tree/tools/nixery
https://nixery.dev/
Apache License 2.0
1.82k stars 68 forks source link

feat(ci): add integration tests to GitHub Actions, remove .travis.yaml #124

Closed flokli closed 3 years ago

flokli commented 3 years ago

This copies the integration tests from .travis.yaml into a script, documents the assumptions it makes, and wires it into GitHub Actions.

Contrary to the travis version, we don't use Nixery's GCS backend, as handing out access to the bucket used, especially for PRs, needs to be done carefully.

Adding back GCS to the integration test can be done at a later point, either by using a mock server, or by only exposing the credentials for master builds (and have the test script decide on whether GOOGLE_APPLICATION_CREDENTIALS is set or not).

The previous travis version had some complicated post-mortem log gathering - instead of doing this, we can just docker run nixery, but fork it into the background with the shell - causing it to still be able to log its output as it's running.

An additional --rm is appended, so the container gets cleaned up on termination - this allows subsequent runs on non-CI infrastructure (like developer laptops), without having to manually clean up containers.

Fixes #119.