Browse Source

Convert vala tests to docker (#3438)

* Convert vala tests to docker

* Try to fix travis build of valum and vsgi by adjusting host and port

These tests work for me locally either way, but the previous travis
build failed with errors like this:

  ** (app:10): CRITICAL **: [2018-03-22T01:23:44.000Z]
  vsgi-application.vala:172: Could not listen on address ::1,
  port 3003 (g-io-error-quark, 0)
Michael Hixson 7 years ago
parent
commit
41281303dd

+ 2 - 2
.travis.yml

@@ -202,8 +202,8 @@ env:
      - "TESTDIR=Scala/finch"
      - "TESTDIR=Swift/vapor"
      - "TESTDIR=Ur/urweb"
-    # - "TESTDIR=Vala/vsgi"
-    # - "TESTDIR=Vala/valum"
+     - "TESTDIR=Vala/vsgi"
+     - "TESTDIR=Vala/valum"
 
 before_script:
 

+ 1 - 1
frameworks/Vala/valum/app.vala

@@ -28,4 +28,4 @@ app.get ("/json", accept ("application/json", (req, res, next, stack) => {
 	return res.expand (gen.to_data (null).data);
 }));
 
-Server.@new ("http", handler: app).run ();
+Server.@new ("http", handler: app).run ({"app", "--address=0.0.0.0:8080"});

+ 1 - 2
frameworks/Vala/valum/benchmark_config.json

@@ -2,10 +2,9 @@
   "framework": "valum",
   "tests": [{
     "default": {
-      "setup_file": "setup",
       "json_url": "/json",
       "plaintext_url": "/plaintext",
-      "port": 3003,
+      "port": 8080,
       "approach": "Realistic",
       "classification": "Micro",
       "database": "MySQL",

+ 2 - 0
frameworks/Vala/valum/run.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+build/app --forks=$(nproc --ignore 1)

+ 0 - 9
frameworks/Vala/valum/setup.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-
-fw_depends meson vala valum libjson-glib-dev
-
-rm -rf build
-meson --buildtype=release build
-ninja -C build
-
-build/app --forks=$(nproc --ignore 1) &

+ 9 - 0
frameworks/Vala/valum/valum.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/vala:latest
+
+ADD ./ /valum_app
+WORKDIR /valum_app
+
+RUN meson --buildtype=release build
+RUN ninja -C build
+
+CMD bash run.sh

+ 1 - 1
frameworks/Vala/vsgi/app.vala

@@ -30,4 +30,4 @@ public class App : Handler
 	}
 }
 
-Server.new ("http", handler: new App ()).run ();
+Server.new ("http", handler: new App ()).run ({"app", "--address=0.0.0.0:8080"});

+ 1 - 2
frameworks/Vala/vsgi/benchmark_config.json

@@ -2,10 +2,9 @@
   "framework": "vsgi",
   "tests": [{
     "default": {
-        "setup_file": "setup",
         "json_url": "/json",
         "plaintext_url": "/plaintext",
-        "port": 3003,
+        "port": 8080,
         "approach": "Realistic",
         "classification": "Platform",
         "database": "MySQL",

+ 2 - 0
frameworks/Vala/vsgi/run.sh

@@ -0,0 +1,2 @@
+#!/bin/bash
+build/app --forks=$(nproc --ignore 1)

+ 0 - 9
frameworks/Vala/vsgi/setup.sh

@@ -1,9 +0,0 @@
-#!/bin/bash
-
-fw_depends meson vala valum libjson-glib-dev
-
-rm -rf build
-meson --buildtype=release build
-ninja -C build
-
-build/app --forks=$(nproc --ignore=1) &

+ 9 - 0
frameworks/Vala/vsgi/vsgi.dockerfile

@@ -0,0 +1,9 @@
+FROM tfb/vala:latest
+
+ADD ./ /vsgi_app
+WORKDIR /vsgi_app
+
+RUN meson --buildtype=release build
+RUN ninja -C build
+
+CMD bash run.sh

+ 62 - 0
toolset/setup/docker/languages/vala.dockerfile

@@ -0,0 +1,62 @@
+FROM tfb/base:latest
+
+RUN apt-get install -y flex libglib2.0-dev libsoup2.4-dev libjson-glib-dev python3-pip
+
+#--------------------------------------
+# vala
+#
+
+ENV VALA_API_VERSION 0.36
+ENV VALA_VERSION 0.36.3
+
+RUN mkdir /vala
+WORKDIR /vala
+
+RUN curl -sL -O https://download.gnome.org/sources/vala/${VALA_API_VERSION}/vala-${VALA_VERSION}.tar.xz
+RUN tar xf vala-${VALA_VERSION}.tar.xz
+WORKDIR vala-${VALA_VERSION}
+RUN ./configure --prefix=/vala
+RUN make
+RUN make install
+RUN ln -s /vala/share/vala-${VALA_API_VERSION}/vapi /vala/share/vala/vapi
+
+ENV LD_LIBRARY_PATH /vala/lib:${LD_LIBRARY_PATH}
+ENV PKG_CONFIG_PATH /vala/lib/pkgconfig:${PKG_CONFIG_PATH}
+ENV PATH /vala/bin:${PATH}
+
+#--------------------------------------
+# meson
+#
+
+ENV MESON_VERSION 0.40.1
+
+RUN pip3 install meson==${MESON_VERSION}
+
+#--------------------------------------
+# ninja
+#
+
+ENV NINJA_VERSION 1.7.2
+
+RUN mkdir /ninja
+WORKDIR /ninja
+
+RUN curl -sL -O https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-linux.zip
+RUN unzip ninja-linux.zip -d /ninja/bin
+ENV PATH /ninja/bin:${PATH}
+
+#--------------------------------------
+# valum framework
+#
+
+ENV VALUM_VERSION 0.3.12
+
+RUN mkdir /valum_framework
+WORKDIR /valum_framework
+
+RUN curl -sL https://github.com/valum-framework/valum/archive/v${VALUM_VERSION}.tar.gz | tar xz
+WORKDIR valum-${VALUM_VERSION}
+RUN rm -rf build
+RUN meson --prefix=/vala --buildtype=release --libdir=lib build
+RUN ninja -C build
+RUN ninja -C build install