diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/lint-doc.sh | 24 | ||||
-rwxr-xr-x | scripts/merge-reports | 29 | ||||
-rwxr-xr-x | scripts/merge-simplecov | 30 | ||||
-rwxr-xr-x | scripts/prepare_build.sh | 35 |
4 files changed, 96 insertions, 22 deletions
diff --git a/scripts/lint-doc.sh b/scripts/lint-doc.sh new file mode 100755 index 00000000000..62236ed539a --- /dev/null +++ b/scripts/lint-doc.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +cd "$(dirname "$0")/.." + +# Use long options (e.g. --header instead of -H) for curl examples in documentation. +grep --extended-regexp --recursive --color=auto 'curl (.+ )?-[^- ].*' doc/ +if [ $? == 0 ] +then + echo '✖ ERROR: Short options should not be used in documentation!' >&2 + exit 1 +fi + +# Ensure that the CHANGELOG.md does not contain duplicate versions +DUPLICATE_CHANGELOG_VERSIONS=$(grep --extended-regexp '^## .+' CHANGELOG.md | sed -E 's| \(.+\)||' | sort -r | uniq -d) +if [ "${DUPLICATE_CHANGELOG_VERSIONS}" != "" ] +then + echo '✖ ERROR: Duplicate versions in CHANGELOG.md:' >&2 + echo "${DUPLICATE_CHANGELOG_VERSIONS}" >&2 + exit 1 +fi + +echo "✔ Linting passed" +exit 0 + diff --git a/scripts/merge-reports b/scripts/merge-reports new file mode 100755 index 00000000000..f7b574001ac --- /dev/null +++ b/scripts/merge-reports @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby + +require 'json' +require 'yaml' + +main_report_file = ARGV.shift +unless main_report_file + puts 'usage: merge_reports <main-report> [extra reports...]' + exit 1 +end + +puts "Loading #{main_report_file}..." +main_report = JSON.parse(File.read(main_report_file)) +new_report = main_report.dup + +ARGV.each do |report_file| + report = JSON.parse(File.read(report_file)) + + # Remove existing values + updates = report.delete_if do |key, value| + main_report[key] && main_report[key] == value + end + new_report.merge!(updates) + + puts "Merged #{report_file} adding #{updates.size} results." +end + +File.write(main_report_file, JSON.pretty_generate(new_report)) +puts "Saved #{main_report_file}." diff --git a/scripts/merge-simplecov b/scripts/merge-simplecov new file mode 100755 index 00000000000..65f93f8830b --- /dev/null +++ b/scripts/merge-simplecov @@ -0,0 +1,30 @@ +#!/usr/bin/env ruby + +require_relative '../spec/simplecov_env' +SimpleCovEnv.configure_profile + +module SimpleCov + module ResultMerger + class << self + def resultset_files + Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json')) + end + + def resultset_hashes + resultset_files.map do |path| + begin + JSON.parse(File.read(path)) + rescue + {} + end + end + end + + def resultset + resultset_hashes.reduce({}, :merge) + end + end + end +end + +SimpleCov::ResultMerger.merged_result.format! diff --git a/scripts/prepare_build.sh b/scripts/prepare_build.sh index 4a7ee7dbb64..6e3f76b8399 100755 --- a/scripts/prepare_build.sh +++ b/scripts/prepare_build.sh @@ -1,31 +1,21 @@ -#!/bin/bash +#!/bin/sh retry() { - for i in $(seq 1 3); do + if eval "$@"; then + return 0 + fi + + for i in 2 1; do + sleep 3s + echo "Retrying $i..." if eval "$@"; then return 0 fi - sleep 3s - echo "Retrying..." done return 1 } -if [ -f /.dockerinit ]; then - mkdir -p vendor - - # Install phantomjs package - pushd vendor - if [ ! -e phantomjs_1.9.8-0jessie_amd64.deb ]; then - wget -q https://gitlab.com/axil/phantomjs-debian/raw/master/phantomjs_1.9.8-0jessie_amd64.deb - fi - dpkg -i phantomjs_1.9.8-0jessie_amd64.deb - popd - - # Try to install packages - retry 'apt-get update -yqqq; apt-get -o dir::cache::archives="vendor/apt" install -y -qq --force-yes \ - libicu-dev libkrb5-dev cmake nodejs postgresql-client mysql-client unzip' - +if [ -f /.dockerenv ] || [ -f ./dockerinit ]; then cp config/database.yml.mysql config/database.yml sed -i 's/username:.*/username: root/g' config/database.yml sed -i 's/password:.*/password:/g' config/database.yml @@ -34,11 +24,12 @@ if [ -f /.dockerinit ]; then cp config/resque.yml.example config/resque.yml sed -i 's/localhost/redis/g' config/resque.yml - export FLAGS=(--path vendor --retry 3) + export FLAGS="--path vendor --retry 3 --quiet" else - export PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin + rnd=$(awk 'BEGIN { srand() ; printf("%d\n",rand()*5) }') + export PATH="$HOME/bin:/usr/local/bin:/usr/bin:/bin" cp config/database.yml.mysql config/database.yml sed "s/username\:.*$/username\: runner/" -i config/database.yml sed "s/password\:.*$/password\: 'password'/" -i config/database.yml - sed "s/gitlabhq_test/gitlabhq_test_$((RANDOM/5000))/" -i config/database.yml + sed "s/gitlabhq_test/gitlabhq_test_$rnd/" -i config/database.yml fi |