From 397430ec0ef4ae8aa1472e9092bc620b86c97eb1 Mon Sep 17 00:00:00 2001 From: Jon Jagger Date: Fri, 1 Dec 2023 17:38:22 +0000 Subject: [PATCH] Fix asset paths (#5) * Fix paths in app_base.rb * Remove debug echoes from demo.sh * Use tmpfs volume-mounts with mode 01777 to satisfy stricter Ruby base image * Add better error logging to demo.sh --- app/app_base.rb | 6 +-- app/assets/javascripts/app.js | 2 +- demo.sh | 75 ++++++++++++++++++--------------- docker-compose.yml | 12 +++++- sh/create_docker_compose_yml.sh | 12 +++++- 5 files changed, 64 insertions(+), 43 deletions(-) diff --git a/app/app_base.rb b/app/app_base.rb index 949904c..fda0cc4 100644 --- a/app/app_base.rb +++ b/app/app_base.rb @@ -20,7 +20,7 @@ def initialize(externals) # - - - - - - - - - - - - - - - - - - - - - - - environment.append_path('code/assets/images') + environment.append_path('app/assets/images') def self.jquery_dialog_image(name) get "/assets/images/#{name}", provides:[:png] do @@ -35,7 +35,7 @@ def self.jquery_dialog_image(name) # - - - - - - - - - - - - - - - - - - - - - - - environment.append_path('code/assets/stylesheets') + environment.append_path('app/assets/stylesheets') environment.css_compressor = :sassc get '/assets/app.css', provides:[:css] do @@ -49,7 +49,7 @@ def self.jquery_dialog_image(name) # - - - - - - - - - - - - - - - - - - - - - - - environment.append_path('code/assets/javascripts') + environment.append_path('app/assets/javascripts') environment.js_compressor = Uglifier.new(harmony: true) get '/assets/app.js', provides:[:js] do diff --git a/app/assets/javascripts/app.js b/app/assets/javascripts/app.js index 2c03f2d..2becd76 100644 --- a/app/assets/javascripts/app.js +++ b/app/assets/javascripts/app.js @@ -1 +1 @@ -//= require_tree . +//= require_tree . \ No newline at end of file diff --git a/demo.sh b/demo.sh index 8f8baa6..5a605eb 100755 --- a/demo.sh +++ b/demo.sh @@ -20,35 +20,17 @@ curl_smoke_test() echo curl log in $(log_filename) rm -rf $(log_filename) || true - echo curling server/alive curl_json_body_200 alive - echo - - echo curling server/ready curl_json_body_200 ready - echo - - echo curling server/sha curl_json_body_200 sha - echo - - echo curling assets/app.css - curl_200 assets/app.css 'Content-Type: text/css' - #cat $(log_filename) | grep 'SassC::SyntaxError:' && exit 42 - echo - echo curling assets/app.js - curl_200 assets/app.js 'Content-Type: application/javascript' - #cat $(log_filename) | grep 'Uglifier::Error' && exit 42 - echo - - echo curling show/FxWwrr - curl_200 show/FxWwrr dashboard-page - echo + curl_plain_200 assets/app.css 'Content-Type: text/css' + curl_plain_200 assets/app.js 'Content-Type: application/javascript' + curl_plain_200 show/FxWwrr dashboard-page } #- - - - - - - - - - - - - - - - - - - - - - - - - - - -curl_json_body_200() +curl_json() { local -r route="${1}" # eg ready curl \ @@ -60,30 +42,53 @@ curl_json_body_200() --silent \ --verbose \ "http://localhost:$(server_port)/${route}" \ - >> "$(log_filename)" 2>&1 + > "$(log_filename)" 2>&1 +} - grep --quiet 200 "$(log_filename)" # eg HTTP/1.1 200 OK - local -r result=$(tail -n 1 "$(log_filename)") - echo "GET ${route} => 200 ...|${result}" +#- - - - - - - - - - - - - - - - - - - - - - - - - - - +curl_json_body_200() +{ + local -r route="${1}" # eg ready + echo -n "GET ${route} => 200 ...|" + if curl_json "${route}" && grep --quiet 200 "$(log_filename)"; then + local -r result=$(tail -n 1 "$(log_filename)") + echo "${result}" + else + echo FAILED + echo + cat "$(log_filename)" + exit 42 + fi } #- - - - - - - - - - - - - - - - - - - - - - - - - - - -curl_200() +curl_plain() { local -r route="${1}" # eg dashboard/choose - local -r pattern="${2}" # eg Hello - curl \ --fail \ --request GET \ --silent \ --verbose \ "http://localhost:$(server_port)/${route}" \ - >> "$(log_filename)" 2>&1 + > "$(log_filename)" 2>&1 +} - grep --quiet 200 "$(log_filename)" # eg HTTP/1.1 200 OK - local -r result=$(grep "${pattern}" "$(log_filename)" | head -n 1) - echo "GET ${route} => 200 ...|${result}" +#- - - - - - - - - - - - - - - - - - - - - - - - - - - +curl_plain_200() +{ + local -r route="${1}" # eg dashboard/choose + local -r pattern="${2}" # eg Hello + echo -n "GET ${route} => 200 ...|${pattern} " + + if curl_plain "${route}" && grep --quiet 200 "$(log_filename)" && grep --quiet "${pattern}" "$(log_filename)"; then + echo SUCCESS + else + echo FAILED + echo + cat "$(log_filename)" + exit 42 + fi } #- - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -101,7 +106,7 @@ curl_smoke_test if [ "${1:-}" == '--no-browser' ]; then containers_down else - #open "http://localhost/dashboard/show/REf1t8?auto_refresh=true&minute_columns=true" - #open "http://localhost/dashboard/show/FxWwrr?auto_refresh=true&minute_columns=true" + open "http://localhost/dashboard/show/REf1t8?auto_refresh=true&minute_columns=true" + open "http://localhost/dashboard/show/FxWwrr?auto_refresh=true&minute_columns=true" open "http://localhost/dashboard/show/LyQpFr?auto_refresh=true&minute_columns=true" fi diff --git a/docker-compose.yml b/docker-compose.yml index be5cb3c..313f0a2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,10 +31,14 @@ services: ports: [ 9999:9999 ] read_only: true restart: "no" - tmpfs: /tmp volumes: - ./test/client:/dashboard:ro - ./test:/test:ro + - type: tmpfs + target: /tmp + tmpfs: + mode: 01777 + size: 10485760 # 10MB server: image: cyberdojo/dashboard:${COMMIT_TAG} @@ -50,7 +54,11 @@ services: ports: [ 4527:4527 ] read_only: true restart: "no" - tmpfs: /tmp volumes: - ./app:/app:ro - ./test:/test:ro + - type: tmpfs + target: /tmp + tmpfs: + mode: 01777 + size: 10485760 # 10MB diff --git a/sh/create_docker_compose_yml.sh b/sh/create_docker_compose_yml.sh index ceb7e48..edead8c 100755 --- a/sh/create_docker_compose_yml.sh +++ b/sh/create_docker_compose_yml.sh @@ -46,10 +46,14 @@ services: ports: [ $(client_port):$(client_port) ] read_only: true restart: "no" - tmpfs: /tmp volumes: - ./test/$(client_name):/dashboard:ro - ./$(tests_dir):/test:ro + - type: tmpfs + target: /tmp + tmpfs: + mode: 01777 + size: 10485760 # 10MB $(server_name): image: $(server_image):\${COMMIT_TAG} @@ -65,9 +69,13 @@ services: ports: [ $(server_port):$(server_port) ] read_only: true restart: "no" - tmpfs: /tmp volumes: - ./app:/app:ro - ./$(tests_dir):/test:ro + - type: tmpfs + target: /tmp + tmpfs: + mode: 01777 + size: 10485760 # 10MB EOF }