Commit graph

14 commits

Author SHA1 Message Date
Dmitriy Zaporozhets
98c954ee81
Add flay: tool to find duplicate code
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-11 16:29:00 +01:00
Dmitriy Zaporozhets
6748dd2fd0
Allow flog failure for now
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-11 15:30:23 +01:00
Dmitriy Zaporozhets
58429d9b26
Add method complexity check to CI
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-11-10 18:34:05 +01:00
Yorick Peterse
89920ca819 Allow benchmark failures for the time being
This will be disallowed again once the existing benchmarks pass (which
relies on #2341).
2015-10-05 11:08:52 +02:00
Yorick Peterse
19893a1c10 Basic setup for an RSpec based benchmark suite
This benchmark suite uses benchmark-ips
(https://github.com/evanphx/benchmark-ips) behind the scenes. Specs can
be turned into benchmark specs by setting "benchmark" to "true" in the
top-level describe block like so:

    describe SomeClass, benchmark: true do

    end

Writing benchmarks can be done using custom RSpec matchers, for example:

    describe MaruTheCat, benchmark: true do
      describe '#jump_in_box' do
        it 'should run 1000 iterations per second' do
          maru = described_class.new

          expect { maru.jump_in_box }.to iterate_per_second(1000)
        end
      end
    end

By default the "iterate_per_second" expectation requires a standard
deviation under 30% (this is just an arbitrary default for now). You can
change this by chaining "with_maximum_stddev" on the expectation:

    expect { maru.jump_in_box }.to iterate_per_second(1000)
      .with_maximum_stddev(10)

This will change the expectation to require a maximum deviation of 10%.

Alternatively you can use the it block style to write specs:

    describe MaruTheCat, benchmark: true do
      describe '#jump_in_box' do
        subject { -> { described_class.new } }

        it { is_expected.to iterate_per_second(1000) }
      end
    end

Because "iterate_per_second" operates on a block, opposed to a static
value, the "subject" method must return a Proc. This looks a bit goofy
but I have been unable to find a nice way around this.
2015-10-02 17:00:23 +02:00
Robert Speicher
60c7d35543 Remove jasmine:ci task, execute teaspoon directly on CI 2015-06-28 16:27:40 -04:00
Dmitriy Zaporozhets
b5e7096cbf Split rspec and spinach tests in parallel 2015-06-23 16:43:24 +02:00
Marin Jankovski
0abd565305 Use correct name for the script. 2015-06-18 10:57:28 +02:00
Marin Jankovski
2b49706f1f Move prepare_build script to scripts dir. 2015-06-18 10:46:24 +02:00
Marin Jankovski
b6688f830b Add a build preparation script, modify gitlab.ci.yml to use the script. 2015-06-17 12:23:43 +02:00
Valery Sizov
f715bc7b70 new syntax of .gitlab-ci.yml 2015-06-15 19:38:35 +03:00
Valery Sizov
64b6dbea74 CI script: remove directives with default value 2015-06-04 23:06:37 +03:00
Dmitriy Zaporozhets
b18ac382b7
Refactor CI script
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-06-04 16:54:32 +02:00
Valery Sizov
3d5a51d416 added ci yaml 2015-06-04 13:47:44 +03:00