-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
Figure out nicer way to pre-install dependencies in Docker #3
Comments
There's also a dependency between the test runner and the exercises. While for Gradle itself it works more or less OK - Gradle maintains some level of backward/forward-compatibility, the dependencies in each exercise are pinned to a given version. Therefore, any upgrade of the dependencies will require synchronization between this repo and the exercises repo. And it will as well cause a bit of "downtime" for running automated tests on the exercises (while the image with updated dependencies is build and pushed). I was wondering if we can use a similar approach to one used for caching Gradle dependencies and executables between CI builds:
I can prepare a proof of concept next week. |
I agree that keep dependencies in sync can be tedious. Theoretically your solution would work, but it would require us to make changes to our infrastructure with potential security issues. I don't think we'll add something like this anytime in the near future, unless @iHiD thinks otherwise. As a workaround, you could automatically create an issue in this repo whenever the exercises CI detects a new dependency being added. |
@artamonovkirill I like your idea. But we won't get chance to do that before the launch of v3 now. Maybe we leave this open until I have more cycles and then come back it? |
Currently, we pre-install the dependencies for offline usage in the Dockerfile as follows:
Basically, we have a "project" with two empty source files: https://github.com/exercism/groovy-test-runner/blob/main/src/main/groovy/TestRunner.groovy and https://github.com/exercism/groovy-test-runner/blob/main/src/test/groovy/TestRunnerSpec.groovy and a
build.gradle
file: https://github.com/exercism/groovy-test-runner/blob/main/build.gradle. Compiling this project forces the dependencies to be downloaded, which can then be used later on to run the student's solution without any networking (which is how test runners are executed).While this works, it does feel a bit odd. Maybe there is a nicer solution?
The text was updated successfully, but these errors were encountered: