From f1d3e87069c3c0bc0e1da7319c406d7b730f0c71 Mon Sep 17 00:00:00 2001 From: Igor Shubovych Date: Fri, 4 Dec 2015 16:54:05 +0200 Subject: [PATCH] Travis CI integration: automatic linting, rebuilding index.json, building pages archive, and little other improvements --- .editorconfig | 4 +++ .travis.yml | 16 ++++++++++ Gemfile | 4 ++- Gemfile.lock | 3 ++ Makefile | 11 +++++-- scripts/build.sh | 63 +++++++++++++++++++++++++++++++++++++++ scripts/markdown-style.rb | 3 +- 7 files changed, 99 insertions(+), 5 deletions(-) create mode 100644 .travis.yml create mode 100644 scripts/build.sh diff --git a/.editorconfig b/.editorconfig index 4a7ea3036a2039..197cb78962bd09 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,3 +10,7 @@ insert_final_newline = true [*.md] trim_trailing_whitespace = false + +[Makefile] +indent_style = tab +indent_size = 8 diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000000000..a42d693fac6ea8 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: ruby +rvm: + - 2.2.2 + +gemfile: + - Gemfile + +script: + - make check + +after_success: + - bash scripts/build.sh + +env: + global: + secure: PC9nFPE034jPsF0nUn7phCt0RgVouIvd0HsQkOonNSiElh+pkFyaVvDIsQR8lF4x1AxFjz9Yo3qnNGM3txvOMiNqfReDRINfnpvLDkumCeXuKYNO8XyacTHyxMWp0sZM/YhHhJ8qhroSbNOcYYduSW+fTAoyILieRNg+Wwx7b/rdybVKW7d45GDhjmxvx0/cVhLgghXZr7SRMRh89xrGRkT8vRY7xwlmMs83YRSEcs9pkBrdAfSG/16yOCAQVUS1z10zXk/SsRZlNGKzSWsvb1H/OlkHZpxpnawJhmn2iNIy25acqRdyLwv5Oy5P2sQDBjNenTmiv0JL9v7ks5uNtXaIimvSieLKn/vLmGmW/8ArifqwPpEcL/ZmoCH5SzNrvtO06TfuYPCWGrfLKBxySh4jnza8y8YruKlQfjWDm/o5MmiJWvM1mVtIRozO9hDYZ1EMf4e8qlT7K6Y3alWbl3PqZ/DnLHYIUEvtYv5M0H2Ydtqh5JIWj/XRaNSwwmL4Lpcz3AKavP93N4tYAoGIWO9hkVpwCYz3qNH9dIxQJ7ancj01FWVFqqbLcBLPk8MaQsuFSBZpIz9PTLFdtso/YnviqSu5I7GMsFQdvGY8Mth207dMCVs7DRYe9QCjpboQoiCPY8ckmVYvlYdrDMjnfkhQC/OfZLitVLBe6zyEwTs= diff --git a/Gemfile b/Gemfile index 4834540614e474..20c82bd333a1e3 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ source 'https://rubygems.org' -gem 'mdl' +group :development, :test do + gem 'mdl' +end diff --git a/Gemfile.lock b/Gemfile.lock index 45a0d8c43a1d60..0c3e43aaa17ca7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -14,3 +14,6 @@ PLATFORMS DEPENDENCIES mdl + +BUNDLED WITH + 1.10.6 diff --git a/Makefile b/Makefile index c50606c32e3b65..a778389c2bf6ed 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,5 @@ +default: check + all: setup index index: @@ -14,10 +16,13 @@ hooks: deps: @bundle @echo "OK" - + +check: + @bundle exec mdl --style ./scripts/markdown-style.rb pages + lint: - @GEM_PATH=.gem find pages -exec .gem/bin/mdl {} --style ./scripts/markdown-style.rb 1>&2 \; - + @GEM_PATH=.gem find pages -exec mdl {} --style ./scripts/markdown-style.rb 1>&2 \; + lint-changed: @./scripts/lint-changed.sh diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100644 index 00000000000000..c95875a16e798d --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash + +set -ev + +function initialize { + if [ -z "$TLDRHOME" ]; then + export TLDRHOME=${TRAVIS_BUILD_DIR:-`pwd`} + fi + export TLDR_ARCHIVE="tldr.zip" + export SITE_HOME="$HOME/site" + export SITE_URL="github.com/tldr-pages/tldr-pages.github.io" + + git config --global user.email "travis@travis-ci.org" + git config --global user.name "Travis CI" + git config --global push.default simple + git config --global diff.zip.textconv "unzip -c -a" +} + +function rebuild_index { + $TLDRHOME/scripts/build_index.rb + echo "Rebuilding index is done" +} + +function build_archive { + echo "Removing $TLDR_ARCHIVE if it exists" + rm -f $TLDR_ARCHIVE + + echo "Creating an archive $TLDR_ARCHIVE" + cd $TLDRHOME/ + zip -r $TLDR_ARCHIVE pages/ LICENSE.md +} + +function upload_assets { + echo "Uploading assets to static site" + + git clone --quiet --depth 1 https://${GH_TOKEN}@${SITE_URL} $SITE_HOME + mv -f $TLDR_ARCHIVE $SITE_HOME/assets/ + cp -f $TLDRHOME/pages/index.json $SITE_HOME/assets/ + + cd $SITE_HOME + git add -A . + git commit -m "[TravisCI] uploaded assets after commits ${TRAVIS_COMMIT_RANGE}" + if [[ ! `git push -q` ]]; then + echo "Cannot push to a static site" + else + echo "Assets deployed" + fi +} + +################################### +# MAIN +################################### + +if [ ! "$TRAVIS_PULL_REQUEST" == "false" ]; then + echo "This is a Pull Request, no index rebuild needed" +elif [ ! "$TRAVIS_BRANCH" == "master" ]; then + echo "This is not a master branch, no index rebuild needed" +else + initialize + rebuild_index + build_archive + upload_assets +fi diff --git a/scripts/markdown-style.rb b/scripts/markdown-style.rb index 9f50e3d569ca68..8710e0fc26c24d 100644 --- a/scripts/markdown-style.rb +++ b/scripts/markdown-style.rb @@ -1,4 +1,5 @@ # This file contains the markdown rules markdownlint will check for all -exclude_rule 'MD013' # Lengthy lines (80+ chars) +exclude_rule 'MD013' # Lengthy lines (80+ chars) +exclude_rule 'MD034' # Allow bare URLs