Rakefile in rake_npm-0.1.0.pre.13 vs Rakefile in rake_npm-0.1.0.pre.14

- old
+ new

@@ -1,34 +1,61 @@ # frozen_string_literal: true -require 'yaml' require 'rake_circle_ci' +require 'rake_git' +require 'rake_git_crypt' require 'rake_github' -require 'rake_ssh' require 'rake_gpg' -require 'securerandom' +require 'rake_ssh' require 'rspec/core/rake_task' require 'rubocop/rake_task' +require 'securerandom' +require 'yaml' task default: %i[ library:fix test:unit ] +RakeGitCrypt.define_standard_tasks( + namespace: :git_crypt, + + provision_secrets_task_name: :'secrets:provision', + destroy_secrets_task_name: :'secrets:destroy', + + install_commit_task_name: :'git:commit', + uninstall_commit_task_name: :'git:commit', + + gpg_user_key_paths: %w[ + config/gpg + config/secrets/ci/gpg.public + ] +) + +namespace :git do + RakeGit.define_commit_task( + argument_names: [:message] + ) do |t, args| + t.message = args.message + end +end + namespace :encryption do namespace :directory do desc 'Ensure CI secrets directory exists.' task :ensure do FileUtils.mkdir_p('config/secrets/ci') end end namespace :passphrase do - desc 'Generate encryption passphrase used by CI.' + desc 'Generate encryption passphrase for CI GPG key' task generate: ['directory:ensure'] do - File.write('config/secrets/ci/encryption.passphrase', - SecureRandom.base64(36)) + File.write( + 'config/secrets/ci/encryption.passphrase', + SecureRandom.base64(36) + ) end end end namespace :keys do @@ -49,15 +76,36 @@ ) end end namespace :secrets do - desc 'Regenerate all generatable secrets.' - task regenerate: %w[ + namespace :directory do + desc 'Ensure secrets directory exists and is set up correctly' + task :ensure do + FileUtils.mkdir_p('config/secrets') + unless File.exist?('config/secrets/.unlocked') + File.write('config/secrets/.unlocked', 'true') + end + end + end + + desc 'Generate all generatable secrets.' + task generate: %w[ encryption:passphrase:generate keys:deploy:generate keys:gpg:generate ] + + desc 'Provision all secrets.' + task provision: [:generate] + + desc 'Delete all secrets.' + task :destroy do + rm_rf 'config/secrets' + end + + desc 'Rotate all secrets.' + task rotate: [:'git_crypt:reinstall'] end RuboCop::RakeTask.new namespace :library do