mediawiki-extensions-Visual.../Rakefile
Antoine Musso 2aadc18105 build: npm/rake entry point for screenshots upload
We have a Jenkins job to take screenshots of VisualEditor and upload the
result to commons.wikimedia.org. That roughly does:

    npm install
    node_modules/.bin/grunt screenshots-all

    bundle install
    bundle exec upload

However on CI, the Docker container only accepts 'npm run-script XXX' or
'bundle exec rake YYY'.

Add a npm script 'screenshots-all' invoking 'grunt screenshots-all'.

Add a rake task 'commons_upload'. I have added a basic check to make
sure environment variables are properly set before invoking the upload
script.

Thus on CI the usage will become:

  npm install
  npm run-script screenshots-all

  bundle install
  bundle exec rake commons_upload

Which match the CI convention.

Bug: T189122
Change-Id: I221ed8d6178dd036eac287f0f811834a6d4ffd22
2018-03-07 23:23:30 +01:00

29 lines
803 B
Ruby

require 'bundler/setup'
require 'rubocop/rake_task'
RuboCop::RakeTask.new(:rubocop) do |task|
# If you use mediawiki-vagrant, rubocop will by default use its .rubocop.yml.
# This line makes it explicit that you want .rubocop.yml from the directory
# where `bundle exec rake` is executed:
task.options = ['-c', '.rubocop.yml']
end
task :default => [:test]
desc 'Run all build/tests commands (CI entry point)'
task :test => [:rubocop]
desc 'Upload screenshots to commons.wikimedia.org'
task :commons_upload do
require 'commons_upload'
required_envs = %w[
MEDIAWIKI_API_UPLOAD_URL
MEDIAWIKI_USER
MEDIAWIKI_PASSWORD
]
has_all_envs = required_envs.all? { |env| ENV.key?(env) }
fail "Requires env variables:\n#{required_envs}" unless has_all_envs
CommonsUpload.images
end