Commit Graph
227 Commits
Author SHA1 Message Date
Kamil Trzciński 3eef0e18e0 Merge branch 'refactor-build-service' into 'master'
Refactor Ci::Commit and Ci::Build to have all builds for same :sha on single page

This makes Ci::Commit to have only :sha and simplifies routing to have only :sha in path. The :ref and :push_data is now parameter of Ci::Build.

All commit related data (git author, message and .gitlab-ci.yml) is read directly from repository.

All code related for creating builds is moved to CreateBuildsService.

Status deduction is rewritten to make if more efficient and easier to integrate with Commit Status API.

This is partially working, tests are not yet touched.

This slightly changes view of Commit:
![Screen_Shot_2015-10-02_at_15.21.47](https://gitlab.com/gitlab-org/gitlab-ce/uploads/ad3f1ccdcc87659ea437d8db6c5b9f94/Screen_Shot_2015-10-02_at_15.21.47.png)

@dzaporozhets What do you think?


See merge request !1502
2015-10-05 17:42:50 +00:00
Yorick Peterse 2fa4e2fb6a Evaluate benchmark blocks in the proper context
This ensures that blocks defines using "benchmark_subject" have access
to methods defined using let/subject & friends.
2015-10-05 16:27:41 +02:00
Kamil Trzcinski d2d2df0738 Fix next round of tests 2015-10-05 13:12:00 +02:00
Yorick Peterse 22506ddc50 Added benchmark_subject method for benchmarks
This class method can be used in "describe" blocks to specify the
subject of a benchmark. This lets you write:

    benchmark_subject { Foo }

instead of:

    benchmark_subject { -> { Foo } }
2015-10-05 10:51:24 +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
Yorick Peterse dbc05d4a62 Don't use "rm" for cleaning tmp/builds
If this directory were to be empty this would result in warnings being
printed to STDERR, cluttering spec output. Doing this in Ruby fixes this
problem (and also removes the need for shell alltogether).
2015-10-02 16:25:47 +02:00
Douwe Maan ee028d9d60 Rename reply_by_email to incoming_email to prepare for the future. 2015-09-21 10:35:37 +02:00
Kamil Trzcinski 2f2b9f67c2 Fix backup tests 2015-09-16 00:06:41 +02:00
Kamil Trzcinski 8d5c9935ff Fix: models/ci/project_spec.rb 2015-09-15 22:00:17 +02:00
Valery Sizov b87ca7500f fix specs. Stage 7 2015-09-15 17:43:17 +03:00
Valery Sizov e2cbb36ba9 fix specs. Stage 5 2015-09-15 15:51:03 +03:00
Valery Sizov 910bf96ec3 fix specs. Stage 2 2015-09-14 18:14:17 +03:00
Valery Sizov 4c53cc0eba rubocop satisfy 2015-09-14 14:37:18 +03:00
Dmitriy Zaporozhets e3c30bf2e8 Merge branch 'master' into ci-and-ce-sitting-in-a-tree-k-i-s-s-i-n-g
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-09-11 16:32:11 +02:00
Dmitriy Zaporozhets 4e7b47dde1 Convert ci features specs to v3 2015-09-10 16:56:21 +02:00
Dmitriy Zaporozhets 9d93c567b3 Fix part of CI api tests 2015-09-10 16:04:06 +02:00
Dmitriy Zaporozhets 10b3c85e2c Fix some issues with ci models specs 2015-09-10 15:47:15 +02:00
Dmitriy Zaporozhets 0b5d627cd4 Merge branch 'master' into ci-and-ce-sitting-in-a-tree-k-i-s-s-i-n-g 2015-09-09 14:56:02 +02:00
Dmitriy Zaporozhets 76c6aeb9bc Merge CI factories and CI spec/support with GitLab 2015-09-09 13:37:50 +02:00
Stan Hu 8820785c8f Fix emoji URLs in Markdown when relative_url_root is used
Also adds the ability to run rspecs with relative_url_defined on the enviornment. For example:

RELATIVE_URL_ROOT=/gitlab rspec

Closes #1728
2015-09-06 09:46:10 -07:00
Kirilll Zaitsev 263abda3fd Drone CI service 2015-09-02 05:52:16 +03:00
Douwe Maan 046b283127 Groundwork for merging CI into CE 2015-08-25 18:42:46 -07:00
Douwe Maan afb765ad9e Fix markdown specs again. Apparently development and test behave differently. 2015-08-20 15:41:34 -07:00
Douwe Maan 99ef8c8159 Fix markdown specs. 2015-08-20 15:37:43 -07:00
Douwe Maan 48e25a019a Add stub_reply_by_email_setting helper. 2015-08-20 13:21:22 -07:00
Douwe Maan 54b04f1c5b Add fixture_file helper. 2015-08-20 12:41:47 -07:00
Dmitriy Zaporozhets 4e4866f255 Refactor pre/post receive commit services into one class 2015-08-14 16:04:17 +02:00
Dmitriy Zaporozhets 9649f9387a Fix tests for web editor 2015-08-14 15:08:31 +02:00
Dmitriy Zaporozhets 9011a32234 Disable pre-receive check in test env
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-08-14 13:27:51 +02:00
Dmitriy Zaporozhets 3e259ea8bc Revert "Merge branch 'revert-satellites' into 'master' "
This reverts commit 5daf44b7c8, reversing
changes made to 2f706fbd23.
2015-08-11 14:33:31 +02:00
Dmitriy Zaporozhets 9f10943c1a Revert "Merge branch 'drop-satellites'"
This reverts commit 957e849f41, reversing
changes made to 6b9dbe9f5a.

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-08-11 10:28:42 +02:00
Robert Speicher fb6dc1f07d Add Group#add_* convenience methods
Encapsulates the logic for `Gitlab::Access::WHATEVER` levels.
2015-08-07 00:20:02 -04:00
Dmitriy Zaporozhets b48b07044b Merge branch 'master' into drop-satellites
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-08-04 16:42:36 +02:00
Dmitriy Zaporozhets b118f648cb Merge branch 'master' of github.com:gitlabhq/gitlabhq 2015-08-03 11:04:04 +02:00
Jacob Vosmaer 05b518aa4d Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq into backup-archive-permissions 2015-07-29 15:44:04 +02:00
Robert Speicher 8c957b54f5 Fix setup/teardown for Markdown feature spec
Prior, CI seemed to be freezing after running these specs.
2015-07-29 00:06:52 -04:00
Robert Speicher 05f9a6a9c4 Update Markdown feature to allow for multiple pipelines 2015-07-28 18:56:27 -04:00
Robert Speicher 590fca0f06 Move MarkdownFeature to its own support file
This file's about to get much bigger and this removes some of the extra
noise.
2015-07-28 18:56:26 -04:00
Jacob Vosmaer 0be6debb0b Merge branch 'master' of dev.gitlab.org:gitlab/gitlabhq into backup-archive-permissions 2015-07-27 11:22:35 +02:00
Stan Hu 562242cb9d Fix commit data retrieval when branch name has single quotes
Closes #1724
2015-07-26 03:47:01 -07:00
Jacob Vosmaer 39a7e210a3 Use a separate backup test directory and nuke its contents 2015-07-24 18:54:06 +02:00
Douwe Maan 546731244a Merge branch 'rs-security-spec-speed' into 'master'
Speed up security feature specs

Before: `rspec spec/features/security/  0.12s user 0.04s system 0% cpu 3:38.00 total`

After: `rspec spec/features/security/  0.12s user 0.04s system 0% cpu 1:40.58 total`

The majority of the speed improvements is from two things:

1. Instead of using our standard `login_as` helper in the matchers, we take advantage
   of the `Warden::Test::Helpers` version of the method which bypasses the login form
   and logs the user in directly. We were essentially testing that filling out the login
   form works hundreds of times.
2. There were many tests that verified if a user of a certain access level
   (master, owner, reporter, guest) had access to a resource. Unfortunately we were
   creating every type of user for each test even though a test was only verifying one of
   them at a time. Now the tests only create the one user role they're testing.

See merge request !1023
2015-07-22 09:22:43 +00:00
Robert Speicher 0d5cf111f3 Move custom matchers to their own files under spec/support/matchers 2015-07-22 00:01:17 -04:00
Robert Speicher a2ecfdc585 Move access-related matchers to their own module 2015-07-22 00:01:17 -04:00
Robert Speicher 1fee24a361 Remove unused be_valid_commit matcher 2015-07-21 22:11:08 -04:00
Stan Hu 643557dabc Fix 404 error in files view after deleting the last file in a repository
Closes #1362
2015-07-21 14:12:43 -07:00
Dmitriy Zaporozhets abd2bc00f9 Fix some of tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
2015-07-16 17:04:49 +02:00
Dmitriy Zaporozhets 87e6786aa0 Merge branch 'rs-fix-coverage' into 'master'
Move coverage-related setup back to spec_helper

These tools must be loaded before our regular Rails environment.

Partially reverts 57830201a9

See merge request !976
2015-07-14 09:03:03 +00:00
Robert Speicher ce02bf9900 Move coverage-related setup back to spec_helper
These tools must be loaded before our regular Rails environment.
2015-07-13 22:41:47 -04:00
Robert Speicher f3d4767d0c Rename notice_added_references to create_new_cross_references! 2015-07-13 21:31:16 -04:00