spec/support/release_fixture.rb (54 lines of code) (raw):

# frozen_string_literal: true require 'fileutils' require 'rugged' require_relative 'repository_fixture' class ReleaseFixture include RepositoryFixture def self.repository_name 'release' end DEFAULT_OPTIONS = { gitaly_version: '5.6.0' }.freeze def build_fixture(options = {}) options = DEFAULT_OPTIONS.merge(options) commit_blob( path: 'README.md', content: 'Sample README.md', message: 'Add a simple README.md' ) create_prefixed_master gemfile = File.join(VersionFixture.new.default_fixture_path, 'Gemfile.lock') commit_blob( path: 'Gemfile.lock', content: File.read(gemfile), message: 'Add Gemfile.lock' ) commit_blobs( { 'GITLAB_SHELL_VERSION' => "2.2.2\n", 'GITLAB_WORKHORSE_VERSION' => "3.3.3\n", 'GITALY_SERVER_VERSION' => "1.1.1\n", 'GITLAB_ELASTICSEARCH_INDEXER_VERSION' => "6.6.6\n", 'VERSION' => "1.1.1\n" } ) repository.checkout("#{branch_prefix}master") # Create a basic branch repository.branches.create("#{branch_prefix}branch-1", 'HEAD') # Create old stable branches repository.branches.create("#{branch_prefix}1-9-stable", 'HEAD') repository.branches.create("#{branch_prefix}1-9-stable-ee", 'HEAD') repository.tags.create('v1.9.0', 'HEAD', message: 'GitLab Version 1.9.0') # At some point we release Pages! commit_blobs({ 'GITLAB_PAGES_VERSION' => "4.4.4\n" }) # Create new stable branches repository.branches.create("#{branch_prefix}9-1-stable", 'HEAD') repository.branches.create("#{branch_prefix}9-1-stable-ee", 'HEAD') repository.tags.create('v9.1.0', 'HEAD', message: 'GitLab Version 9.1.0') # Bump the versions in master commit_blobs( { 'GITALY_SERVER_VERSION' => "#{options[:gitaly_version]}\n", 'GITLAB_PAGES_VERSION' => "4.5.0\n", 'GITLAB_SHELL_VERSION' => "2.3.0\n", 'GITLAB_WORKHORSE_VERSION' => "3.4.0\n", 'GITLAB_ELASTICSEARCH_INDEXER_VERSION' => "9.9.9\n", 'VERSION' => "1.2.0\n" } ) repository.checkout("#{branch_prefix}master") end end