aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/scripts/smoke-mix.exs
blob: 82ae3370fea340102adb9ef808f637c7b268e95c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
defmodule Smoke.MixProject do
  use Mix.Project

  def project do
    [
      app: :smoke,
      version: "0.1.0",
      elixir: "~> 1.8",
      start_permanent: Mix.env() == :prod,
      deps: deps()
    ]
  end

  # Run "mix help compile.app" to learn about applications.
  def application do
    [
      extra_applications: [:logger]
    ]
  end

  # Run "mix help deps" to learn about dependencies.
  defp deps do
    case :os.getenv('SMOKE_DEPS_SET') do
      'main' ->
	[
	  {:bear, "~> 0.8.7"},
	  {:cloudi_core, "~> 1.7"},
	  {:concuerror, "~> 0.20.0"},
	  {:cowboy, "~> 2.6.1"},
	  {:ecto, "~> 3.0.6"},
	  {:ex_doc, "~> 0.19.3"},
	  {:distillery, "~> 2.0.12"},
	  {:erlydtl, "~> 0.12.1"},
	  {:gen_smtp, "~> 0.13.0"},
	  {:getopt, "~> 1.0.1"},
	  {:gettext, "~> 0.16.1"},
	  {:gpb, "~> 4.6"},
	  {:gproc, "~> 0.8.0"},
	  {:graphql, "~> 0.15.0", hex: :graphql_erl},
	  {:hackney, "~> 1.15.0"},
	  {:ibrowse, "~> 4.4.1"},
	  {:jose, "~> 1.9.0"},
	  {:lager, "~> 3.6"},
	  {:locus, "~> 1.6"},
	  {:nimble_parsec, "~> 0.5.0"},
	  {:phoenix, "~> 1.4.0"},
	  {:riak_pb, "~> 2.3"},
	  {:scalaris, git: "https://github.com/scalaris-team/scalaris",
	   compile: build_scalaris()},
	  {:tdiff, "~> 0.1.2"},
	  {:webmachine, "~> 1.11"},
	  {:wings, git: "https://github.com/dgud/wings.git",
	   compile: build_wings()},
	  {:zotonic_stdlib, "~> 1.0"},
	]
      'rabbitmq' ->
	[{:rabbit_common, "~> 3.7"}]
      _ ->
	[]
    end
  end

  defp build_scalaris do
    # Only compile the Erlang code.

    """
    echo '-include("rt_simple.hrl").' >include/rt.hrl
    (cd src && erlc -W0 -I ../include -I ../contrib/log4erl/include -I ../contrib/yaws/include *.erl)
    (cd src/comm_layer && erlc -W0 -I ../../include -I *.erl)
    (cd src/cp && erlc -W0 -I ../../include -I *.erl)
    (cd src/crdt && erlc -W0 -I ../../include -I *.erl)
    (cd src/json && erlc -W0 -I ../../include -I *.erl)
    (cd src/paxos && erlc -W0 -I ../../include -I *.erl)
    (cd src/rbr && erlc -W0 -I ../../include -I *.erl)
    (cd src/rrepair && erlc -W0 -I ../../include -I *.erl)
    (cd src/time && erlc -W0 -I ../../include -I *.erl)
    (cd src/transactions && erlc -W0 -I ../../include -I *.erl)
    (cd src/tx && erlc -W0 -I ../../include -I *.erl)
    """
  end

  defp build_wings do
    # If the Erlang system is not installed, the build will
    # crash in plugins_src/accel when attempting to build
    # the accel driver. Since there is very little Erlang code in
    # the directory, skip the entire directory.

    """
    echo "all:\n\t" >plugins_src/accel/Makefile
    git commit -a -m'Disable for smoke testing'
    git tag -a -m'Smoke test' vsmoke_test
    make
    """
  end
end