From 3efe5cddd33ae8a8365a1c52b9c32b9c5f30187e Mon Sep 17 00:00:00 2001 From: 0x1eef <0x1eef@protonmail.com> Date: Sun, 23 Jul 2023 13:48:35 -0300 Subject: [PATCH] deploy: 'rake deploy' deploys to production And remove unused tasks --- tasks/deploy.rake | 43 ++++++------------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) diff --git a/tasks/deploy.rake b/tasks/deploy.rake index e96e80946..d81e6f766 100644 --- a/tasks/deploy.rake +++ b/tasks/deploy.rake @@ -1,45 +1,14 @@ ## # frozen_string_literal: true -read_options = ->(env:) do - path = File.join(Dir.getwd, "config", "#{env}.yml") - Ryo.from(YAML.load_file(path)) +desc "Configure environment for deployment" +task "deploy:env" do + ENV["NODE_ENV"] = "production" + print "Set $NODE_ENV to 'production'", "\n" end desc "Deploy the website" -task "deploy", [:env] do |task, args| - env = args[:env] - case env - when "remote" - ENV["NODE_ENV"] = "production" - Rake::Task["nanoc:clean"].invoke - Rake::Task["nanoc:compile"].invoke - Rake::Task["deploy:remote"].invoke - when "local" - Rake::Task["nanoc:compile"].invoke - if Process.euid != 0 - sh "doas -u root bundle exec rake deploy:local" - exit $?.exitstatus - end - Rake::Task["deploy:local"].invoke - end -end - -task "deploy:local" do - options = read_options.call(env: "local") - logs_dir = File.dirname(options.nginx.logs.access) - dest_dir = options.nginx.root - chown = Array.new(2) { options.nginx.user }.join(":") - sh "mkdir -p #{logs_dir}" - sh "mkdir -p #{dest_dir}" - sh "rm -rf #{File.join(dest_dir, "*")}" - sh "cp -R build/al-quran/ #{dest_dir}" - sh "chown -R #{chown} #{dest_dir}" - sh "chmod -R og-rwx #{dest_dir}" - sh "chmod -R u+rwX #{dest_dir}" -end - -task "deploy:remote" => %i[nanoc:clean] do +task "deploy" => %i[deploy:env nanoc:clean nanoc:compile] do git_branch = `git branch --show-current`.chomp if git_branch != "production" warn "This task can only be run on the 'production' branch." @@ -49,7 +18,7 @@ task "deploy:remote" => %i[nanoc:clean] do sh( "rsync", "--delete", "-rvah", - "--chmod=Fu=rw,Fg=r,Du=rwx,Dg=rx", + "--chmod=Fu=r,Fg=r,Du=rx,Dg=rx", "--rsync-path='/home/0x1eef/rsync.sh'", "--exclude=audio/", "build/al-quran/",