From 708f4b7fa9d44510254fb2c940398f6099b1bf1d Mon Sep 17 00:00:00 2001 From: Dave Machado Date: Wed, 12 Jul 2017 09:37:42 -0400 Subject: [PATCH] integrate link validation into CI --- .travis.yml | 3 +-- build/validate.rb | 52 ----------------------------------------- build/validate_links.rb | 9 +++++-- 3 files changed, 8 insertions(+), 56 deletions(-) delete mode 100755 build/validate.rb diff --git a/.travis.yml b/.travis.yml index e702877d..3215f727 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,7 +4,7 @@ notifications: before_install: - rvm install 2.4.0 install: - - gem install awesome_bot + - gem install httparty before_script: - cd build script: @@ -12,4 +12,3 @@ script: after_success: - ./build.sh - ./deploy.sh - diff --git a/build/validate.rb b/build/validate.rb deleted file mode 100755 index eecfa514..00000000 --- a/build/validate.rb +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env ruby -auth_keys = ['apiKey', 'OAuth', 'X-Mashape-Key', 'No'] -https_keys = ['Yes', 'No'] - -args = ARGV -filename = args[0] -fail_flag = false - -File.foreach(filename).with_index do |line, line_num| - line_num += 1 - if line.start_with?('|') - # Skip table schema lines - if line.eql? "|---|---|---|---|---|\n" - next - end - values = line.split("|") - - # Check Description to make sure first character is capitalized - desc_val = values[2].lstrip.chop - if !/[[:upper:]]/.match(desc_val[0]) - puts "(#{line_num}) Invalid Description (first char not uppercase): #{desc_val}" - fail_flag = true - end - - # Check Auth values to conform to valid options only - auth_val = values[3].lstrip.chop.tr('``', '') - if !auth_keys.include?(auth_val) - puts "(#{line_num}) Invalid Auth (not a valid option): #{auth_val}" - fail_flag = true - end - - # Check HTTPS Support values to be either "Yes" or "No" - https_val = values[4].lstrip.chop - if !https_keys.include?(https_val) - puts "(#{line_num}) Invalid HTTPS: (must use \"Yes\" or \"No\"): #{https_val}" - fail_flag = true - end - - # Check Link to ensure url is wrapped in "[Go!]" view - link_val = values[5].lstrip.chop - if !link_val.start_with?("[Go!](") || !link_val.end_with?(')') - puts "(#{line_num}) Invalid Link: (format should be \"[Go!]()\"): #{link_val}" - fail_flag = true - end - end -end - -if fail_flag - exit(1) -else - exit(0) -end diff --git a/build/validate_links.rb b/build/validate_links.rb index 8e5fd641..80241835 100755 --- a/build/validate_links.rb +++ b/build/validate_links.rb @@ -16,11 +16,12 @@ raw_links.each do |link| links.push(link) end end +fails = [] # Fail on any duplicate elements dup = links.select{|element| links.count(element) > 1} if dup.uniq.length > 0 dup.uniq.each do |e| - puts "Duplicate link: #{e}" + fails.push("Duplicate link: #{e}") end fail_flag = true end @@ -28,7 +29,6 @@ end links = links.uniq count = 0 total = links.length -fails = [] # GET each link and check for valid response code from allowed_codes links.each do |link| begin @@ -47,6 +47,11 @@ links.each do |link| fail_flag = true end end +if fails.length <= 0 + puts "all links valid" +else + puts "-- RESULTS --" +end fails.each do |e| puts e end