From 3a3ceff1509b0391952252c6121db614387dd88e Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Thu, 19 Jan 2017 19:29:09 -0500 Subject: [PATCH 1/2] Rework CI doc to include multiple providers. --- docs/_docs/continuous-integration.md | 240 +----------------- docs/_docs/continuous-integration/circleci.md | 92 +++++++ .../_docs/continuous-integration/travis-ci.md | 230 +++++++++++++++++ docs/img/circleci-badge.svg | 14 + docs/img/travis-ci-badge.png | Bin 0 -> 26749 bytes 5 files changed, 350 insertions(+), 226 deletions(-) create mode 100644 docs/_docs/continuous-integration/circleci.md create mode 100644 docs/_docs/continuous-integration/travis-ci.md create mode 100644 docs/img/circleci-badge.svg create mode 100644 docs/img/travis-ci-badge.png diff --git a/docs/_docs/continuous-integration.md b/docs/_docs/continuous-integration.md index c2e8a31f..79477645 100644 --- a/docs/_docs/continuous-integration.md +++ b/docs/_docs/continuous-integration.md @@ -1,232 +1,20 @@ --- title: Continuous Integration -permalink: /docs/continuous-integration/ --- -You can easily test your website build against one or more versions of Ruby. -The following guide will show you how to set up a free build environment on -[Travis][0], with [GitHub][1] integration for pull requests. Paid -alternatives exist for private repositories. +Continuous Integration (CI) enables you to publish your Jekyll generated website with confidence by automating the quality assurance and deployment processes. You can quickly get started using CI with one of the providers below: -[0]: https://travis-ci.org/ -[1]: https://github.com/ - -## 1. Enabling Travis and GitHub - -Enabling Travis builds for your GitHub repository is pretty simple: - -1. Go to your profile on travis-ci.org: https://travis-ci.org/profile/username -2. Find the repository for which you're interested in enabling builds. -3. Click the slider on the right so it says "ON" and is a dark grey. -4. Optionally configure the build by clicking on the gear icon. Further - configuration happens in your `.travis.yml` file. More details on that - below. - -## 2. The Test Script - -The simplest test script simply runs `jekyll build` and ensures that Jekyll -doesn't fail to build the site. It doesn't check the resulting site, but it -does ensure things are built properly. - -When testing Jekyll output, there is no better tool than [html-proofer][2]. -This tool checks your resulting site to ensure all links and images exist. -Utilize it either with the convenient `htmlproofer` command-line executable, -or write a Ruby script which utilizes the gem. - -Save the commands you want to run and succeed in a file: `./script/cibuild` - -### The HTML Proofer Executable - -```sh -#!/usr/bin/env bash -set -e # halt script on error - -bundle exec jekyll build -bundle exec htmlproofer ./_site -``` - -Some options can be specified via command-line switches. Check out the -`html-proofer` README for more information about these switches, or run -`htmlproofer --help` locally. - -For example to avoid testing external sites, use this command: - -```sh -$ bundle exec htmlproofer ./_site --disable-external -``` - -### The HTML Proofer Library - -You can also invoke `html-proofer` in Ruby scripts (e.g. in a Rakefile): - -```ruby -#!/usr/bin/env ruby - -require 'html-proofer' -HTMLProofer.check_directory("./_site").run -``` - -Options are given as a second argument to `.new`, and are encoded in a -symbol-keyed Ruby Hash. For more information about the configuration options, -check out `html-proofer`'s README file. - -[2]: https://github.com/gjtorikian/html-proofer - -## 3. Configuring Your Travis Builds - -This file is used to configure your Travis builds. Because Jekyll is built -with Ruby and requires RubyGems to install, we use the Ruby language build -environment. Below is a sample `.travis.yml` file, followed by -an explanation of each line. - -**Note:** You will need a Gemfile as well, [Travis will automatically install](https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management) the dependencies based on the referenced gems: - -```ruby -source "https://rubygems.org" - -gem "jekyll" -gem "html-proofer" -``` - -Your `.travis.yml` file should look like this: - -```yaml -language: ruby -rvm: -- 2.2.5 - -before_script: - - chmod +x ./script/cibuild # or do this locally and commit - -# Assume bundler is being used, therefore -# the `install` step will run `bundle install` by default. -script: ./script/cibuild - -# branch whitelist, only for GitHub Pages -branches: - only: - - gh-pages # test the gh-pages branch - - /pages-(.*)/ # test every branch which starts with "pages-" - -env: - global: - - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer - -sudo: false # route your build to the container-based infrastructure for a faster build -``` - -Ok, now for an explanation of each line: - -```yaml -language: ruby -``` - -This line tells Travis to use a Ruby build container. It gives your script -access to Bundler, RubyGems, and a Ruby runtime. - -```yaml -rvm: -- 2.2.5 -``` - -RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This -directive tells Travis the Ruby version to use when running your test -script. - -```yaml -before_script: - - chmod +x ./script/cibuild -``` - -The build script file needs to have the *executable* attribute set or -Travis will fail with a permission denied error. You can also run this -locally and commit the permissions directly, thus rendering this step -irrelevant. - -```yaml -script: ./script/cibuild -``` - -Travis allows you to run any arbitrary shell script to test your site. One -convention is to put all scripts for your project in the `script` -directory, and to call your test script `cibuild`. This line is completely -customizable. If your script won't change much, you can write your test -incantation here directly: - -```yaml -install: gem install jekyll html-proofer -script: jekyll build && htmlproofer ./_site -``` - -The `script` directive can be absolutely any valid shell command. - -```yaml -# branch whitelist, only for GitHub Pages -branches: - only: - - gh-pages # test the gh-pages branch - - /pages-(.*)/ # test every branch which starts with "pages-" -``` - -You want to ensure the Travis builds for your site are being run only on -the branch or branches which contain your site. One means of ensuring this -isolation is including a branch whitelist in your Travis configuration -file. By specifying the `gh-pages` branch, you will ensure the associated -test script (discussed above) is only executed on site branches. If you use -a pull request flow for proposing changes, you may wish to enforce a -convention for your builds such that all branches containing edits are -prefixed, exemplified above with the `/pages-(.*)/` regular expression. - -The `branches` directive is completely optional. Travis will build from every -push to any branch of your repo if leave it out. - -```yaml -env: - global: - - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer -``` - -Using `html-proofer`? You'll want this environment variable. Nokogiri, used -to parse HTML files in your compiled site, comes bundled with libraries -which it must compile each time it is installed. Luckily, you can -dramatically decrease the install time of Nokogiri by setting the -environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`. - -
-
Be sure to exclude vendor from your - _config.yml
-

Travis bundles all gems in the vendor directory on its build - servers, which Jekyll will mistakenly read and explode on.

+
+
+ + +

Travis CI

+
+
+
+ + +

CircleCI

+
+
- -```yaml -exclude: [vendor] -``` - -By default you should supply the `sudo: false` command to Travis. This command -explicitly tells Travis to run your build on Travis's [container-based - infrastructure](https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure). Running on the container-based infrastructure can often times -speed up your build. If you have any trouble with your build, or if your build -does need `sudo` access, modify the line to `sudo: required`. - -```yaml -sudo: false -``` - -### Troubleshooting - -**Travis error:** *"You are trying to install in deployment mode after changing -your Gemfile. Run bundle install elsewhere and add the updated Gemfile.lock -to version control."* - -**Workaround:** Either run `bundle install` locally and commit your changes to -`Gemfile.lock`, or remove the `Gemfile.lock` file from your repository and add -an entry in the `.gitignore` file to avoid it from being checked in again. - -### Questions? - -This entire guide is open-source. Go ahead and [edit it][3] if you have a -fix or [ask for help][4] if you run into trouble and need some help. - -[3]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration.md -[4]: https://jekyllrb.com/help/ diff --git a/docs/_docs/continuous-integration/circleci.md b/docs/_docs/continuous-integration/circleci.md new file mode 100644 index 00000000..ccd2d933 --- /dev/null +++ b/docs/_docs/continuous-integration/circleci.md @@ -0,0 +1,92 @@ +--- +title: "CircleCI" +--- + +Building, testing, and deploying your Jekyll-generated website can quickly be done with [CircleCI][0], a continuous integration & delivery tool. CircleCI supports [GitHub][1] and [Bitbucket][2], and you can get started for free using an open-source or private repository. + +[0]: https://circleci.com/ +[1]: https://github.com/ +[2]: https://bitbucket.org/ + +## Follow Your Project on CircleCI + +To start building your project on CircleCI, all you need to do is 'follow' your project from CircleCI's website: + +1. Visit the 'Add Projects' page: +1. From the GitHub or Bitbucket tab on the left, choose a user or organization. +1. Find your project in the list and click 'Build project' on the right. +1. The first build will start on its own. You can start telling CircleCI how to build your project by creating a [circle.yml][3] file in the root of your repository. + +[3]: https://circleci.com/docs/configuration/ + +## Dependencies + +The easiest way to manage dependencies for a Jekyll project (with or without CircleCI) is via a [Gemfile][4]. You'd want to have Jekyll, any Jekyll plugins, [HTML Proofer](#html-proofer), and any other gems that you are using in the `Gemfile`. Don't forget to version `Gemfile.lock` as well. Here's an example `Gemfile`: + +[4]: http://bundler.io/gemfile.html + +```yaml +source 'https://rubygems.org' + +ruby '2.4.0' + +gem 'jekyll' +gem 'html-proofer' +``` + +CircleCI detects when `Gemfile` is present is will automatically run `bundle install` for you in the `dependencies` phase. + +## Testing + +The most basic test that can be run is simply seeing if `jekyll build` actually works. This is a blocker, a dependency if you will, for other tests you might run on the generate site. So we'll run Jekyll, via Bundler, in the `dependencies` phase. + +``` +dependencies: + post: + - bundle exec jekyll build +``` + +### HTML Proofer + +With your site built, it's useful to run tests to check for valid HTML, broken links, etc. There's a few tools out there but [HTML Proofer][5] is popular amongst Jekyll users. We'll run it in the `test` phase with a few preferred flags. Check out the `html-proofer` [README][6] for all available flags, or run `htmlproofer --help` locally. + +[5]: https://github.com/gjtorikian/html-proofer +[6]: https://github.com/gjtorikian/html-proofer/blob/master/README.md#configuration + +```yaml +test: + post: + - bundle exec htmlproofer ./_site --check-html --disable-external +``` + +## Complete Example circle.yml File + +When you put it all together, here's an example of what that `circle.yml` file could look like: + +``` +machine: + environment: + NOKOGIRI_USE_SYSTEM_LIBRARIES: true # speeds up installation of html-proofer + +dependencies: + post: + - bundle exec jekyll build + +test: + post: + - bundle exec htmlproofer ./_site --allow-hash-href --check-favicon --check-html --disable-external + +deployment: + prod: + branch: master + commands: + - rsync -va --delete ./_site username@my-website:/var/html +``` + +## Questions? + +This entire guide is open-source. Go ahead and [edit it][7] if you have a fix or [ask for help][8] if you run into trouble and need some help. CircleCI also has an [online community][9] for help. + +[7]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/circleci.md +[8]: https://jekyllrb.com/help/ +[9]: https://discuss.circleci.com diff --git a/docs/_docs/continuous-integration/travis-ci.md b/docs/_docs/continuous-integration/travis-ci.md new file mode 100644 index 00000000..caff2f64 --- /dev/null +++ b/docs/_docs/continuous-integration/travis-ci.md @@ -0,0 +1,230 @@ +--- +title: "Travis CI" +--- + +You can easily test your website build against one or more versions of Ruby. +The following guide will show you how to set up a free build environment on +[Travis][0], with [GitHub][1] integration for pull requests. + +[0]: https://travis-ci.org/ +[1]: https://github.com/ + +## 1. Enabling Travis and GitHub + +Enabling Travis builds for your GitHub repository is pretty simple: + +1. Go to your profile on travis-ci.org: https://travis-ci.org/profile/username +2. Find the repository for which you're interested in enabling builds. +3. Click the slider on the right so it says "ON" and is a dark grey. +4. Optionally configure the build by clicking on the gear icon. Further + configuration happens in your `.travis.yml` file. More details on that + below. + +## 2. The Test Script + +The simplest test script simply runs `jekyll build` and ensures that Jekyll +doesn't fail to build the site. It doesn't check the resulting site, but it +does ensure things are built properly. + +When testing Jekyll output, there is no better tool than [html-proofer][2]. +This tool checks your resulting site to ensure all links and images exist. +Utilize it either with the convenient `htmlproofer` command-line executable, +or write a Ruby script which utilizes the gem. + +Save the commands you want to run and succeed in a file: `./script/cibuild` + +### The HTML Proofer Executable + +```sh +#!/usr/bin/env bash +set -e # halt script on error + +bundle exec jekyll build +bundle exec htmlproofer ./_site +``` + +Some options can be specified via command-line switches. Check out the +`html-proofer` README for more information about these switches, or run +`htmlproofer --help` locally. + +For example to avoid testing external sites, use this command: + +```sh +$ bundle exec htmlproofer ./_site --disable-external +``` + +### The HTML Proofer Library + +You can also invoke `html-proofer` in Ruby scripts (e.g. in a Rakefile): + +```ruby +#!/usr/bin/env ruby + +require 'html-proofer' +HTMLProofer.check_directory("./_site").run +``` + +Options are given as a second argument to `.new`, and are encoded in a +symbol-keyed Ruby Hash. For more information about the configuration options, +check out `html-proofer`'s README file. + +[2]: https://github.com/gjtorikian/html-proofer + +## 3. Configuring Your Travis Builds + +This file is used to configure your Travis builds. Because Jekyll is built +with Ruby and requires RubyGems to install, we use the Ruby language build +environment. Below is a sample `.travis.yml` file, followed by +an explanation of each line. + +**Note:** You will need a Gemfile as well, [Travis will automatically install](https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management) the dependencies based on the referenced gems: + +```ruby +source "https://rubygems.org" + +gem "jekyll" +gem "html-proofer" +``` + +Your `.travis.yml` file should look like this: + +```yaml +language: ruby +rvm: +- 2.2.5 + +before_script: + - chmod +x ./script/cibuild # or do this locally and commit + +# Assume bundler is being used, therefore +# the `install` step will run `bundle install` by default. +script: ./script/cibuild + +# branch whitelist, only for GitHub Pages +branches: + only: + - gh-pages # test the gh-pages branch + - /pages-(.*)/ # test every branch which starts with "pages-" + +env: + global: + - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer + +sudo: false # route your build to the container-based infrastructure for a faster build +``` + +Ok, now for an explanation of each line: + +```yaml +language: ruby +``` + +This line tells Travis to use a Ruby build container. It gives your script +access to Bundler, RubyGems, and a Ruby runtime. + +```yaml +rvm: +- 2.2.5 +``` + +RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This +directive tells Travis the Ruby version to use when running your test +script. + +```yaml +before_script: + - chmod +x ./script/cibuild +``` + +The build script file needs to have the *executable* attribute set or +Travis will fail with a permission denied error. You can also run this +locally and commit the permissions directly, thus rendering this step +irrelevant. + +```yaml +script: ./script/cibuild +``` + +Travis allows you to run any arbitrary shell script to test your site. One +convention is to put all scripts for your project in the `script` +directory, and to call your test script `cibuild`. This line is completely +customizable. If your script won't change much, you can write your test +incantation here directly: + +```yaml +install: gem install jekyll html-proofer +script: jekyll build && htmlproofer ./_site +``` + +The `script` directive can be absolutely any valid shell command. + +```yaml +# branch whitelist, only for GitHub Pages +branches: + only: + - gh-pages # test the gh-pages branch + - /pages-(.*)/ # test every branch which starts with "pages-" +``` + +You want to ensure the Travis builds for your site are being run only on +the branch or branches which contain your site. One means of ensuring this +isolation is including a branch whitelist in your Travis configuration +file. By specifying the `gh-pages` branch, you will ensure the associated +test script (discussed above) is only executed on site branches. If you use +a pull request flow for proposing changes, you may wish to enforce a +convention for your builds such that all branches containing edits are +prefixed, exemplified above with the `/pages-(.*)/` regular expression. + +The `branches` directive is completely optional. Travis will build from every +push to any branch of your repo if leave it out. + +```yaml +env: + global: + - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer +``` + +Using `html-proofer`? You'll want this environment variable. Nokogiri, used +to parse HTML files in your compiled site, comes bundled with libraries +which it must compile each time it is installed. Luckily, you can +dramatically decrease the install time of Nokogiri by setting the +environment variable `NOKOGIRI_USE_SYSTEM_LIBRARIES` to `true`. + +
+
Be sure to exclude vendor from your + _config.yml
+

Travis bundles all gems in the vendor directory on its build + servers, which Jekyll will mistakenly read and explode on.

+
+ +```yaml +exclude: [vendor] +``` + +By default you should supply the `sudo: false` command to Travis. This command +explicitly tells Travis to run your build on Travis's [container-based + infrastructure](https://docs.travis-ci.com/user/workers/container-based-infrastructure/#Routing-your-build-to-container-based-infrastructure). Running on the container-based infrastructure can often times +speed up your build. If you have any trouble with your build, or if your build +does need `sudo` access, modify the line to `sudo: required`. + +```yaml +sudo: false +``` + +### Troubleshooting + +**Travis error:** *"You are trying to install in deployment mode after changing +your Gemfile. Run bundle install elsewhere and add the updated Gemfile.lock +to version control."* + +**Workaround:** Either run `bundle install` locally and commit your changes to +`Gemfile.lock`, or remove the `Gemfile.lock` file from your repository and add +an entry in the `.gitignore` file to avoid it from being checked in again. + +### Questions? + +This entire guide is open-source. Go ahead and [edit it][3] if you have a +fix or [ask for help][4] if you run into trouble and need some help. + +[3]: https://github.com/jekyll/jekyll/edit/master/docs/_docs/continuous-integration/travis-ci.md +[4]: https://jekyllrb.com/help/ diff --git a/docs/img/circleci-badge.svg b/docs/img/circleci-badge.svg new file mode 100644 index 00000000..38658380 --- /dev/null +++ b/docs/img/circleci-badge.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/docs/img/travis-ci-badge.png b/docs/img/travis-ci-badge.png new file mode 100644 index 0000000000000000000000000000000000000000..94f255ec9ef016e18e94f7fedb6bb04105ae4aa7 GIT binary patch literal 26749 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

ak<2AIA!{{F87&q>sx_$WcF+D1SEnsUiAvXH$1 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

#3$RpaHpFsInJ z%)l~`DYR|$8JI+u!{ddZPw(u~i%N!YIQ!smB~;rol(_-BM{+vIww93 zE^uUK?a$>G1guNls@n-sLXe~+9Irn$!QL6T-K#bL{$0EF1Hoh=awm+d@`X8ow*NM; zEL)X1WMhHjBY95gQr42wSNqJ9!7knq zOXgSKee>c2NX6Dnafr#M*o{@Y^tiH5;<;#KBt<{2}x@VsTCLaAyp@yxcB?QGO%`EJNVy$O7Z30jFz*J z_zVI0!yf}7YUBu?o#sluV_(mqJrBT|a)x6RCce9~*(N3t`YvFt-PPQa9mm8HCei5Z z$dDI-hhGL-E>H8NZ!YyW1GehqNO~~qI?ZTX6T9^P~)Q0MZ_D z;nJoB*#-aLUB?xdD&bXMmbyy+@-SE-+-tf1rVYP3L&!l&w9c@5$3A(?!4Gpq^k|Ee;WDK)1adYf}x#Y)RZ=b4ZZ~5_n1pBn(gFFZT30 zI;1U6|Lt|LFkyF@0|uw{OqL_w-OOJ3CtlsOZvJ1D$m`ddx3InC0nPiREf;royKa%I zyDF+H2JN;w>)}>ZIDPwVL5dFG>8YVrdxvs~+;pLVb}V1`%Vooqti-0^@RGW$G()SF21 zyVbD>ruM)mA16hSu5CXbF;K`wv_CyzoJUyH2I-mQ=W6Xmrb1_L z8rHnKkjTPMeE~}MUqWa%{gdqi*9Nv96E%*llULp{eR$K#L>JAF>Pt|qhpa1t!FE68 zoko&;kFBe-;g{^mK`Xv9j{_W1H@VpZ!c;`}idSE#UDhB{M*ha;xKe1&#-~+^Tzp&n_iulDmUNtT)3$_tje Date: Tue, 24 Jan 2017 01:42:53 +0100 Subject: [PATCH 2/2] Review CI pages --- docs/_docs/continuous-integration.md | 20 ------------------ docs/_docs/continuous-integration/circleci.md | 6 +++--- docs/_docs/continuous-integration/index.md | 9 ++++++++ .../_docs/continuous-integration/travis-ci.md | 14 ++++++------ docs/img/circleci-badge.svg | 14 ------------ docs/img/travis-ci-badge.png | Bin 26749 -> 0 bytes 6 files changed, 19 insertions(+), 44 deletions(-) delete mode 100644 docs/_docs/continuous-integration.md create mode 100644 docs/_docs/continuous-integration/index.md delete mode 100644 docs/img/circleci-badge.svg delete mode 100644 docs/img/travis-ci-badge.png diff --git a/docs/_docs/continuous-integration.md b/docs/_docs/continuous-integration.md deleted file mode 100644 index 79477645..00000000 --- a/docs/_docs/continuous-integration.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Continuous Integration ---- - -Continuous Integration (CI) enables you to publish your Jekyll generated website with confidence by automating the quality assurance and deployment processes. You can quickly get started using CI with one of the providers below: - - diff --git a/docs/_docs/continuous-integration/circleci.md b/docs/_docs/continuous-integration/circleci.md index ccd2d933..fede484a 100644 --- a/docs/_docs/continuous-integration/circleci.md +++ b/docs/_docs/continuous-integration/circleci.md @@ -8,7 +8,7 @@ Building, testing, and deploying your Jekyll-generated website can quickly be do [1]: https://github.com/ [2]: https://bitbucket.org/ -## Follow Your Project on CircleCI +## 1. Follow Your Project on CircleCI To start building your project on CircleCI, all you need to do is 'follow' your project from CircleCI's website: @@ -19,7 +19,7 @@ To start building your project on CircleCI, all you need to do is 'follow' your [3]: https://circleci.com/docs/configuration/ -## Dependencies +## 2. Dependencies The easiest way to manage dependencies for a Jekyll project (with or without CircleCI) is via a [Gemfile][4]. You'd want to have Jekyll, any Jekyll plugins, [HTML Proofer](#html-proofer), and any other gems that you are using in the `Gemfile`. Don't forget to version `Gemfile.lock` as well. Here's an example `Gemfile`: @@ -36,7 +36,7 @@ gem 'html-proofer' CircleCI detects when `Gemfile` is present is will automatically run `bundle install` for you in the `dependencies` phase. -## Testing +## 3. Testing The most basic test that can be run is simply seeing if `jekyll build` actually works. This is a blocker, a dependency if you will, for other tests you might run on the generate site. So we'll run Jekyll, via Bundler, in the `dependencies` phase. diff --git a/docs/_docs/continuous-integration/index.md b/docs/_docs/continuous-integration/index.md new file mode 100644 index 00000000..14c5c749 --- /dev/null +++ b/docs/_docs/continuous-integration/index.md @@ -0,0 +1,9 @@ +--- +title: Continuous Integration +permalink: /docs/continuous-integration/ +--- + +Continuous Integration (CI) enables you to publish your Jekyll generated website with confidence by automating the quality assurance and deployment processes. You can quickly get started using CI with one of the providers below: + +* [Travis CI](travis-ci) +* [CircleCI](circleci) diff --git a/docs/_docs/continuous-integration/travis-ci.md b/docs/_docs/continuous-integration/travis-ci.md index caff2f64..e76e1a60 100644 --- a/docs/_docs/continuous-integration/travis-ci.md +++ b/docs/_docs/continuous-integration/travis-ci.md @@ -4,10 +4,10 @@ title: "Travis CI" You can easily test your website build against one or more versions of Ruby. The following guide will show you how to set up a free build environment on -[Travis][0], with [GitHub][1] integration for pull requests. +[Travis][travis], with [GitHub][github] integration for pull requests. -[0]: https://travis-ci.org/ -[1]: https://github.com/ +[travis]: https://travis-ci.org/ +[github]: https://github.com/ ## 1. Enabling Travis and GitHub @@ -26,7 +26,7 @@ The simplest test script simply runs `jekyll build` and ensures that Jekyll doesn't fail to build the site. It doesn't check the resulting site, but it does ensure things are built properly. -When testing Jekyll output, there is no better tool than [html-proofer][2]. +When testing Jekyll output, there is no better tool than [html-proofer][html-proofer]. This tool checks your resulting site to ensure all links and images exist. Utilize it either with the convenient `htmlproofer` command-line executable, or write a Ruby script which utilizes the gem. @@ -68,7 +68,7 @@ Options are given as a second argument to `.new`, and are encoded in a symbol-keyed Ruby Hash. For more information about the configuration options, check out `html-proofer`'s README file. -[2]: https://github.com/gjtorikian/html-proofer +[html-proofer]: https://github.com/gjtorikian/html-proofer ## 3. Configuring Your Travis Builds @@ -91,7 +91,7 @@ Your `.travis.yml` file should look like this: ```yaml language: ruby rvm: -- 2.2.5 +- 2.3.3 before_script: - chmod +x ./script/cibuild # or do this locally and commit @@ -124,7 +124,7 @@ access to Bundler, RubyGems, and a Ruby runtime. ```yaml rvm: -- 2.2.5 +- 2.3.3 ``` RVM is a popular Ruby Version Manager (like rbenv, chruby, etc). This diff --git a/docs/img/circleci-badge.svg b/docs/img/circleci-badge.svg deleted file mode 100644 index 38658380..00000000 --- a/docs/img/circleci-badge.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - diff --git a/docs/img/travis-ci-badge.png b/docs/img/travis-ci-badge.png deleted file mode 100644 index 94f255ec9ef016e18e94f7fedb6bb04105ae4aa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26749 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

ak<2AIA!{{F87&q>sx_$WcF+D1SEnsUiAvXH$1 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

#3$RpaHpFsInJ z%)l~`DYR|$8JI+u!{ddZPw(u~i%N!YIQ!smB~;rol(_-BM{+vIww93 zE^uUK?a$>G1guNls@n-sLXe~+9Irn$!QL6T-K#bL{$0EF1Hoh=awm+d@`X8ow*NM; zEL)X1WMhHjBY95gQr42wSNqJ9!7knq zOXgSKee>c2NX6Dnafr#M*o{@Y^tiH5;<;#KBt<{2}x@VsTCLaAyp@yxcB?QGO%`EJNVy$O7Z30jFz*J z_zVI0!yf}7YUBu?o#sluV_(mqJrBT|a)x6RCce9~*(N3t`YvFt-PPQa9mm8HCei5Z z$dDI-hhGL-E>H8NZ!YyW1GehqNO~~qI?ZTX6T9^P~)Q0MZ_D z;nJoB*#-aLUB?xdD&bXMmbyy+@-SE-+-tf1rVYP3L&!l&w9c@5$3A(?!4Gpq^k|Ee;WDK)1adYf}x#Y)RZ=b4ZZ~5_n1pBn(gFFZT30 zI;1U6|Lt|LFkyF@0|uw{OqL_w-OOJ3CtlsOZvJ1D$m`ddx3InC0nPiREf;royKa%I zyDF+H2JN;w>)}>ZIDPwVL5dFG>8YVrdxvs~+;pLVb}V1`%Vooqti-0^@RGW$G()SF21 zyVbD>ruM)mA16hSu5CXbF;K`wv_CyzoJUyH2I-mQ=W6Xmrb1_L z8rHnKkjTPMeE~}MUqWa%{gdqi*9Nv96E%*llULp{eR$K#L>JAF>Pt|qhpa1t!FE68 zoko&;kFBe-;g{^mK`Xv9j{_W1H@VpZ!c;`}idSE#UDhB{M*ha;xKe1&#-~+^Tzp&n_iulDmUNtT)3$_tje