Skip to content
This repository was archived by the owner on May 4, 2022. It is now read-only.

bump Clojure CLI version #70

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ image-%: ## Build Docker image with single language LANG

.PHONY: run
run: image ## Build and run image with all languages
docker run -it --rm polygott
docker run -it --rm --user runner:runner polygott

run-%: image-% ## Build and run image with single language LANG
docker run -it --rm polygott-$(*)
docker run -it --rm --user runner:runner polygott-$(*)

.PHONY: test
test: image ## Build and test all languages
docker run polygott:latest bash -c polygott-self-test
docker run --user runner:runner polygott:latest bash -c polygott-self-test

test-%: image-% ## Build and test single language LANG
docker run polygott-$(*) bash -c polygott-self-test
docker run --user runner:runner polygott-$(*) bash -c polygott-self-test

.PHONY: changed-test
changed-test: $(addprefix test-,$(basename $(notdir $(shell git diff --name-only origin/master -- languages)))) ## Build and test only changed/added languages
Expand Down
15 changes: 8 additions & 7 deletions gen/inside-test.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,18 @@

CODE=0

<% for ( let lang of languages ) { -%>
# <%= lang.name %>
<% for ( let tname in lang.tests ) { -%>
<% let test = lang.tests[tname]; -%>
<% if ( test.input ) continue %>
<% for ( let lang of languages ) { %>
# <%= lang.name %>
<% for ( let tname in lang.tests ) { %>
<% let test = lang.tests[tname]; %>
<% if ( test.input ) continue %>
<% if ( test.skip ) { %>
echo S <%= lang.name %>:<%= tname %>
<% } else { %>
polygott-lang-setup -l <%= lang.id %>
echo "<%= btoa(test.code) %>" | base64 --decode | run-project -s -l <%= lang.id %> | diff -u --label "<%= lang.name %>" <( echo "<%= btoa(test.output) %>" | base64 --decode ) - && echo ✓ <%= lang.name %>:<%= tname %> || CODE=1
<% } %>
<% } %>
<% } %>
<% } %>
<% } -%>

exit $CODE
19 changes: 10 additions & 9 deletions gen/tests.ejs
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
<% for ( let lang of languages ) { -%>
# <%= lang.name %>
<% for ( let tname in lang.tests ) { -%>
<% let test = lang.tests[tname]; -%>
<% if ( test.input ) continue %>
<% if ( test.skip ) { %>
<% for ( let lang of languages ) { %>
# <%= lang.name %>
<% for ( let tname in lang.tests ) { %>
<% let test = lang.tests[tname]; %>
<% if ( test.input ) continue %>
<% if ( test.skip ) { %>
echo S <%= lang.name %>:<%= tname %>
<% } else { %>
<% } else { %>
polygott-lang-setup -l <%= lang.id %>
echo "<%= btoa(test.code) %>" | base64 --decode | docker run --rm -i polygott run-project -s -l <%= lang.id %> | diff -u --label "<%= lang.name %>" <( echo "<%= btoa(test.output) %>" | base64 --decode ) - && echo ✓ <%= lang.name %>:<%= tname %>
<% } %>
<% } %>
<% } %>
<% } -%>
<% } %>
32 changes: 20 additions & 12 deletions languages/clojure.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,35 @@ packages = [
"openjdk-11-jre-headless"
]
setup = [
"wget https://download.clojure.org/install/linux-install-1.10.1.478.sh",
"chmod +x linux-install-1.10.1.478.sh",
"./linux-install-1.10.1.478.sh",
"rm linux-install-1.10.1.478.sh",
"wget https://download.clojure.org/install/linux-install-1.10.1.536.sh",
"chmod +x linux-install-1.10.1.536.sh",
"./linux-install-1.10.1.536.sh",
"rm linux-install-1.10.1.536.sh",

# Trigger downloading of Clojure JARs now to avoid downloading them at runtime.
# (https://clojure.org/reference/deps_and_cli#_command_line_tools)
"""su runner \
-c 'clojure \
-Sdeps "{:deps {org.clojure/tools.namespace {:mvn/version \\\"1.0.0\\\"}} :paths [\\\"src\\\" \\\".\\\"]}" \
-Sforce \
-Sverbose \
--eval ""'""",

# this ensures that we cache the maven deps in the image ($XDG_CONFIG_HOME)
# https://clojure.org/reference/deps_and_cli#_command_line_tools
# pretty ridiculous but what else can you do?
"clojure -Sverbose -Sdeps '{:mvn/local-repo \"/home/runner/.m2/repository\"}' --eval ''",
"mv /root/.m2/repository $XDG_CONFIG_HOME/clojure/repository && rm -rf /root/.m2",
"/usr/bin/build-prybar-lang.sh clojure"
]
versionCommand = [
"clojure",
"-e",
"clj",
"-Sdeps",
"""{:deps {org.clojure/tools.namespace {:mvn/version "1.0.0"}} :paths ["src" "."]}""",
"--eval",
"(clojure-version)"
]

[run]
command = [
"clojure",
"clj",
"-Sdeps",
"""{:deps {org.clojure/tools.namespace {:mvn/version "1.0.0"}} :paths ["src" "."]}""",
"main.clj"
]

Expand Down