Commit Graph

108 Commits

Author SHA1 Message Date
Sebastian Serth
be4f2b790d Add user to testrun
* We want to identify a user that has triggered a testrun. Previously (in regular operation), only submission author who were regular users were able to start a testrun. Now, we want to prepare a future where submission authors are programming groups. Still, a testrun is triggered by an individual user and not a group.
* Further, this commit fixes some missing foreign key constrains.
2023-08-24 19:32:06 +02:00
kiragrammel
e2baa2ee55 Send score for all members of a programming group 2023-08-24 19:32:06 +02:00
kiragrammel
319c3ab3b4 Add ProgrammingGroup & ProgrammingGroupMembership
* User can create programming group with other users for exercise
* Submission is shared in a group
* Also adjust specs
2023-08-24 19:32:06 +02:00
kiragrammel
0234414bae Rename user to contributor in submission 2023-08-24 19:32:06 +02:00
Sebastian Serth
db56a690c7 Add option to suppress feedback messages
This is used to dynamically exclude some test results from being shown to users, but still allows them to run in the background (e.g., for research).
2023-07-27 10:38:49 +02:00
Sebastian Serth
e3e6fc3af1 Add foreign keys and an index to StructuredError(Attributes)
These changes will ensure a better data consistency and faster access. We further ensure that records should be deleted properly.
2023-03-20 23:50:12 +01:00
Sebastian Serth
417ead3d3f Reduce SQL queries to find a unsolved recommended RfC
Fixes CODEOCEAN-JQ
2023-03-14 13:56:23 +01:00
Sebastian Serth
ddf041ac05 Check RfC visibility before redirecting users 2023-02-21 10:01:01 +01:00
Sebastian Serth
7a2e442d91 Reject reference implementations only for Runs 2022-12-12 20:53:46 +01:00
Sebastian Serth
574e99eddd Fix rubocop offenses - Requires Ruby 3.1+ 2022-11-25 11:10:06 +01:00
Sebastian Serth
2753e4ef5b Always catch StandardError in Threads and release connection 2022-11-11 22:50:27 +01:00
Sebastian Serth
cf957eb715 Prevent reference_implementation to be copied to Runner 2022-11-04 17:30:30 +01:00
Sebastian Serth
d80a8dd64f Fix Submissions index page
Closes CODEOCEAN-BJ
2022-10-11 20:21:13 +02:00
Sebastian Serth
4f5f71840a Change order of tests to execute linter checks first 2022-10-05 19:38:38 +02:00
Sebastian Serth
bbb791471b Remove AWS study 2022-09-21 18:57:12 +02:00
Sebastian Serth
166aa3cc6f Remove Ransack from Exercise edit for tags
* Also improve Ransack usage of attributes and associations
2022-08-20 01:33:00 +02:00
Sebastian Serth
f0b89d8461 Fix Rubocop offense 2022-05-06 16:42:30 +02:00
Sebastian Serth
6d95b921f0 Limit RfC display to the last months 2022-05-06 16:29:52 +02:00
Sebastian Serth
e4384d7ddd Merge pull request #1242 from openHPI/refactor_testrun_table
Refactor testrun table
2022-05-04 00:25:08 +02:00
Sebastian Serth
2ce9c4258a Remove New Relic 2022-04-29 22:53:36 +02:00
Sebastian Serth
ea02dff0e5 Extend storage of Testrun Messages and truncate long output 2022-04-29 22:44:34 +02:00
Sebastian Serth
5ecba6ef70 Persist TestrunMessages and store timestamp
So far, the Testrun messages are in addition to the Tesstrun.output column
2022-04-29 01:00:51 +02:00
Sebastian Serth
e9efb5bc2b Add exit_code and status to Testruns, create model for TestrunMessages
* This is the first step to migrate the `output` column from Testruns to a dedicated table TestrunMessages
2022-04-28 15:18:51 +02:00
Sebastian Serth
0f378ce151 Limit RfC display to the last three months 2022-04-26 19:00:55 +02:00
Sebastian Serth
d10735d0a8 Persist Execution Environment when running code 2022-04-15 15:22:19 +02:00
Sebastian Serth
4887f4af02 Implement A/B Test for using AWS as an executor for Java 2022-04-15 15:22:19 +02:00
Sebastian Serth
ea85519163 Update bundle (with newest rubocop version) and fix offenses 2022-01-04 09:42:37 +01:00
Sebastian Serth
79edace57b Use BigDecimals for score calculations 2021-12-16 23:12:16 +01:00
Sebastian Serth
0c1a10959c Use file name with file path as identifier 2021-12-15 00:52:31 +01:00
Sebastian Serth
5aee2aaba8 Add more logging for execution requests 2021-11-18 14:18:41 +01:00
Sebastian Serth
c2ea27b3ee Add annotation about exceptions to submission.rb 2021-11-14 22:45:37 +01:00
Sebastian Serth
92eafa145c Swap runner during score if timeout occurred 2021-11-04 18:43:16 +01:00
Sebastian Serth
91af20b5ce Disallow assessment files during run 2021-11-02 16:19:24 +01:00
Sebastian Serth
0b4217b12d Memoize collect_files 2021-11-02 16:19:01 +01:00
Sebastian Serth
d87e23b9a3 Add execute_command method to runner.rb
* This is now used by the score and test runs
* This also re-enables the interactive shell for execution environments
2021-11-01 17:13:05 +01:00
Sebastian Serth
7285978ea3 Re-add test method for SubmissionsController 2021-11-01 17:13:01 +01:00
Sebastian Serth
5f98456276 Extract run_test_file from submission.rb 2021-11-01 17:13:01 +01:00
Sebastian Serth
2377f8370c Clarify set_file and set_files in SubmissionsController 2021-11-01 17:13:00 +01:00
Sebastian Serth
0c22e1392a Remove outdated mnemosyne traces 2021-11-01 17:12:55 +01:00
Sebastian Serth
13c378b980 Remove concurrent ruby gem no longer needed 2021-11-01 17:12:55 +01:00
Felix Auringer
c7369366d5 Ensure that only one EventMachine is running 2021-11-01 17:12:52 +01:00
Felix Auringer
5cc180d0e9 Fix rubocop, I18n, cleanup rebase 2021-11-01 17:12:52 +01:00
Felix Auringer
2dff81a510 Attach duration information to the exception object 2021-11-01 17:12:52 +01:00
Felix Auringer
36578a2817 Ensure to save Testrun even when an error occurs 2021-11-01 17:12:52 +01:00
Felix Auringer
704407b9fc Add strategy for DockerContainerPool
In order to provide an alternative to Poseidon, a strategy for the
DockerContainerPool is added that is used by the runner model.

Co-authored-by: Sebastian Serth <Sebastian.Serth@hpi.de>
2021-11-01 17:12:51 +01:00
Felix Auringer
1d3f0d7ad8 Handle Faraday errors 2021-11-01 17:12:50 +01:00
Felix Auringer
b6bc578aea Move submission scoring from controller concern to submission model
Localization and markdown formatting is now done in a controller
spec in order to bring this logic away from the data and towards
the view.
2021-11-01 17:12:50 +01:00
Felix Auringer
d0d1b1bffd Introduce strategy for runner behavior
The runner model is only a class responsible for storing information
now. Based on the configuration it picks a strategy for the runner
management. The Poseidon strategy is already implemented and tested.
The Docker strategy will follow.
2021-11-01 17:12:49 +01:00
Felix Auringer
63d997a7e3 Fix Rubocop offenses after Rubocop was reconfigured 2021-11-01 17:12:47 +01:00
Konrad Hanff
286a3f394d Fix autocorrectable rubocop offences and implement suggestions 2021-11-01 17:12:46 +01:00