Commit Graph

199 Commits

Author SHA1 Message Date
Thomas Hobson 0434877d03
Add nix runtime testing and pre-installing runtimes 2022-01-30 22:29:21 +13:00
Thomas Hobson 5bc793cd70
BREAKING: replace custom build scripts with nix
General:
- Switched to yarn to better work with nix-based tooling
- Switched package system to use nix. This stops double dependencies and slow cloud compile times, while providing more compile/runtime support to the Nix project
- Removed container builder in favor of internal container tooling
- Package versions no-longer need to be SemVer compliant
- Removed "piston package spec" files, replaced with nix-flake based runtimes
- Exported nosocket and piston-api as packages within the nix-flake
- Removed repo container
- Switched docker building to nix-based container outputting
- Removed docker compose as this is a single container
- Removed package commands from CLI

Packages:
- Move bash, clojure, cobol, node, python2, python3 to new format
- Remainder of packages still need to be moved

v2 API:
- Removed "version" specifier. To select specific versions, use the v3 api
- Removed "/package" endpoints as this doesn't work with the new nix-based system

v3 API:
- Duplicate of v2 API, except instead of passing in a language name an ID is used intead.
2022-01-30 18:41:24 +13:00
Thomas Hobson 63de4850d8
dockerfile to manage mounting of /nix 2021-10-05 15:18:08 +13:00
Thomas Hobson 6c9c00813c
install API in container 2021-10-05 14:57:49 +13:00
Thomas Hobson 8165770cfd
Merge branch 'master' into iverilog 2021-10-02 00:11:06 +13:00
Thomas Hobson 1b6563d181
rework process janitor
Old process janitor required starting a `ps` process.
This was problematic, as `ps` requires another entry in the process table, which in some cases was impossible as it was exhausted.
2021-10-02 00:07:37 +13:00
Thomas Hobson 7313958155
api: maximum concurrent jobs and potential fix for gcc 2021-10-01 20:28:54 +13:00
Brikaa 56a3c91a6a pkg(iverilog-11.0.0): Added iverilog 11.0.0 2021-09-26 13:25:13 +02:00
Dan Vargas 15e2e81d96 fix stdin for normal execute 2021-09-22 16:39:26 -05:00
Thomas Hobson 7d05f4e305
Merge branch 'master' into websocket 2021-09-22 08:21:31 +12:00
Brikaa 1250cf213a pkg(rscript-4.1.1): Added R 4.1.1 2021-09-12 14:38:57 +02:00
Thomas Hobson 2386684a05
api: fix file cleanup edge case
Processes could still be spawned writing files after the app has cleaned the dir out, and is ready to clear it out.
Dumb edge case, but oh well.
2021-08-20 01:05:13 +12:00
Thomas Hobson 5cd84ae816
api: allow paths when writing files (#302) 2021-07-22 14:58:41 +12:00
Thomas Hobson 230cb3abe1
bump versions major 2021-07-17 01:00:44 +12:00
Thomas Hobson 5ace2bf0e4
api: websocket init timeout 2021-07-17 00:25:19 +12:00
Thomas Hobson 3436648add
api: signaling process via ws 2021-07-17 00:22:55 +12:00
Thomas Hobson de89acb617
api: Implement Websocket transport for live data 2021-07-16 23:10:44 +12:00
Thomas Hobson c71aea6166
compute hash in chunks.
Previously we were loading the entire package file into memory, then
updating the hash. Now we update the hash with chunks of the data as it is read in.
Should fix #259
2021-05-18 21:07:40 +12:00
Thomas Hobson 543cb11e69
Change package manager request signature 2021-05-08 12:41:41 +12:00
Thomas Hobson b3be57e0b4
lint like rest of codebase 2021-05-08 12:30:40 +12:00
Thomas Hobson 1b7504a191
switch back to startsWith
This is because application/json;charset=utf8 is perfectly valid!
2021-05-08 12:25:04 +12:00
Thomas Hobson 4259e89bb2
lint api 2021-05-08 12:20:21 +12:00
Thomas Hobson 2beb0abff7
Merge branch 'master' of github.com:engineer-man/piston 2021-05-08 12:08:30 +12:00
Thomas Hobson b51350489f
Up the default max file size limit 2021-05-08 12:08:13 +12:00
Brian Seymour 106d5c72c9 fix json validation 2021-05-07 14:50:50 -05:00
Brian Seymour 3ea6ca1180 fix json validation 2021-05-07 14:42:55 -05:00
Brian Seymour 5830d7fb43 fix json validation 2021-05-07 14:35:27 -05:00
Brian Seymour de449c6d56 validate json instead of a json header, and lots of cleanup 2021-05-07 14:22:25 -05:00
Thomas Hobson 0da1cd5867
use real uid for killing processes instead of using euid (#206) 2021-05-07 22:11:28 +12:00
Thomas Hobson 972228412a
switch to taking config by env
To help with ease of deployment, configuration now is administered through the use of environment variables.
This allows for easy configuration directly from the docker-compose file and is a much more robust solution.
2021-05-07 21:11:36 +12:00
Felix fb102ebe83
Improved memory limits (#248)
* Added optional compile_memory_limit and run_memory_limit parameters

* Combined memory limit parameters into one
2021-05-07 20:21:25 +12:00
Thomas Hobson eaf0ba34bd
Allow additional content-type parameters 2021-05-07 20:12:27 +12:00
Thomas Hobson d95d67071c
reject on non-json content-types (#233) 2021-05-07 19:37:22 +12:00
Thomas Hobson 9590d5afbc
Patch for race condition with filesystem and process cleanup 2021-05-07 19:23:34 +12:00
Thomas Hobson 8b90c12c5c
chown directories to root, ensuring they are not writable by runners 2021-05-02 20:11:55 +12:00
Thomas Hobson 38ab15081e
Merge branch 'master' of https://github.com/engineer-man/piston 2021-05-02 17:02:26 +12:00
Thomas Hobson 37c760b081
allow empty contents 2021-05-02 17:01:50 +12:00
Thomas d577072749
Revert "Added max_memory_usage parameter (#238)" (#246)
This reverts commit a49acc7dbe.
2021-05-02 14:55:37 +12:00
Dan Vargas 2412d50f82
pkg(octave-6.2.0): add deps for octave (#245) 2021-05-02 14:41:53 +12:00
Felix a49acc7dbe
Added max_memory_usage parameter (#238)
* Added max_memory_usage parameter

* Added max_memory_usage description to readme
2021-05-01 21:10:53 +12:00
Thomas Hobson 5509492a99
uncomment the fix 2021-04-28 16:11:49 +12:00
Thomas Hobson 3bd73d07a9
file persistance fix 2021-04-28 16:03:35 +12:00
Thomas Hobson a6bc24e22e
Fix issue where large files can be written to exhaust space
**BREAKING CHANGE**
Requires manually editing the config file, or deleting the config file entirely!
2021-04-28 15:39:23 +12:00
Thomas Hobson 9a52e369f2
fix forking exploits 2021-04-26 19:37:40 +12:00
Thomas Hobson 6fe0da030d
edge case 2021-04-26 13:37:50 +12:00
Thomas Hobson 3673b4e403
zombie process handler 2021-04-26 13:00:34 +12:00
Thomas Hobson 347f2d56d7
use a compatible waitpid library 2021-04-26 11:32:10 +12:00
Thomas Hobson dd31873700
free zombie processes from proctable 2021-04-26 11:22:28 +12:00
Thomas Hobson 18a44bf146
install ps in container 2021-04-26 10:58:57 +12:00
Thomas Hobson 00fede6e0d
change api version to v2 2021-04-26 10:40:53 +12:00