Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FeatureRequest] Improvements to make it easier to hook validation into CI pipeline #20

Open
j-be opened this issue Feb 5, 2021 · 0 comments

Comments

@j-be
Copy link
Contributor

j-be commented Feb 5, 2021

We are thinking about letting the validation run as part of our CI/CD pipeline, and break build on error. We spotted some pain points, which currently makes it needlessly hard to get that up and running. Maybe there is already a solution to them, but I couldn't find anything on that in the documentation.

I'd like to note, that I am talking about the content in docker and local_configuration folders of this repo.

Writable repo folder in root Volume

Considering my use-case, root volume is currently containing both read-only and read-write data. This makes it hard to spawn single-use ephemeral containers. What I'd like to propose is to have all read-only data on a dedicated volume. This would be (I think) everything in /root/ except for /root/repo/.

Propsal: Create an environment variable (e.g. GIT_REPO_PATH) telling the server where the repository resides. By having it default to /root/repo it would be perfectly backwards compatible.

What I am currently doing, is to create an empty repo folder, and by using the following Dockerfile I use it as a mount point for an ephemeral volume (but it seems a bit cumbersome having to do that):

FROM docker.pkg.github.com/erasmus-without-paper/ewp-registry-service/ewp-registry-service:latest
VOLUME /root/repo

Extend or replicate validateApi for scripting support

POST /validateApi as defined in UiController.java does a lot of cool stuff I want my CD/CI pipeline to do. But I don't want to parse HTML in order to get the report in a machine readable form.

I would really like to have that functionality available as JSON (XML, or even YAML - I'm not really picky). Additionally, it would be nice, if we could have some quick-check based on status code, like: if any error -> 400 (or even something more exotic, like a 417 Expectation Failed) to have a if statusCode != 200 collectResultAndBreakBuild() in CD/CI.

I can see, how that would break the "don't have test code in your deployment". So, if that would be a concern, maybe we could replace validateApi by the new API + Vue entirely?

EDIT: After thinking about it some more: having support for JUnit XML format would be straight away awesome, but that may be a bit of a pain to work with in Vue.

Public access to the Docker image

I'm not sure whether this is supported by GitHub's Docker registry. If so, please allow unauthenticated pulls.

Could you maybe push the image to Dockerhub, too? I'm pretty sure there should be support for it in GitHub Actions, and it would avoid having to create a GitHub Account for our CD/CI just to pull the image.

Final remarks

If any of the above is still unsolved I am more than happy to contribute (apart from the public Docker image pull - not much I can do there I think).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant