diff --git a/.travis.yml b/.travis.yml
index 73f2448b1b37ff5470cfafc5acbc50517faa1143..3508b45b5323fa2c820098b98870238b310101c7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,7 @@
 ---
 language: ruby
 bundler_args: --without development
-script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--format documentation'"
-after_success:
-  ["git clone -q git://github.com/puppetlabs/ghpublisher.git .forge-releng", ".forge-releng/publish"]
-env:
-  global:
-    - PUBLISHER_LOGIN=camptocamp
-    - secure: "Dm3y5HRGBs9VyqIAHAVbgETJjoeNfM9P4Og4foN5r1T3r7KvjGh/a6X61kCK
-CYZU9v60McoFVnaWbCX6a0duoLplqEA5RiJlfgiay8Fry4ROZTvwNbZWhlqJ
-xeXmUMZca7CgYbiKRoxVSwBirKPX26enaAgIArBQXdenoQdO6Eo="
+script: "bundle exec rake validate && bundle exec rake lint && bundle exec rake spec SPEC_OPTS='--format documentation' && bundle exec rake metadata"
 matrix:
   fast_finish: true
   include:
@@ -21,3 +13,14 @@ matrix:
     env: PUPPET_GEM_VERSION="~> 3.0"
 notifications:
   email: false
+deploy:
+  provider: puppetforge
+  user: camptocamp
+  password:
+    secure: "XAv4O363tng0KuRnu1ZhhwORy+2CF9UQwdwlFmS+NG9jOaTZZN+PMK8iC7OSIvZN6cfKlYjHRHNuxFBnYlnMrLsM9fVxt4NjjznOgIKQpQDleWk4UitZj5ntyHmUtYtofUd5Bhi/sdYXwGN9pVRCrcfFBmsIRq/dOhXD7Wy5KcQ="
+  on:
+    tags: true
+    # all_branches is required to use tags
+    all_branches: true
+    # Only publish if our main Ruby target builds
+    rvm: 1.9.3
diff --git a/Gemfile b/Gemfile
index 2e01aab91314bb74a1808dec9c02ee56581faef2..29ed93f914b95321f03b047603c3a4ccadae7ba5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,6 +5,7 @@ group :development, :test do
   gem 'rspec-puppet',            :require => false
   gem 'puppetlabs_spec_helper',  :require => false
   gem 'puppet-lint',             :require => false
+  gem 'metadata-json-lint',      :require => false
 end
 
 if facterversion = ENV['FACTER_GEM_VERSION']
diff --git a/Rakefile b/Rakefile
index ee78ce6ca5ca4f6b05a380f7162e77be894c4916..47d75d89c480339e3ff6a2ae1109e5493e26ef8b 100644
--- a/Rakefile
+++ b/Rakefile
@@ -4,3 +4,8 @@ require 'puppet-lint/tasks/puppet-lint'
 PuppetLint.configuration.fail_on_warnings
 PuppetLint.configuration.send('disable_80chars')
 PuppetLint.configuration.ignore_paths = ["spec/**/*.pp", "pkg/**/*.pp"]
+
+desc "Lint metadata.json file"
+task :metadata do
+  sh "metadata-json-lint metadata.json"
+end