Skip to content

Commit

Permalink
stabilize deploy
Browse files Browse the repository at this point in the history
  • Loading branch information
kortirso committed Sep 26, 2024
1 parent 082bcc5 commit 98dc09c
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 26 deletions.
24 changes: 13 additions & 11 deletions config/deploy.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,36 +100,38 @@
after :publishing, :restart

namespace :assets do
desc "Remove all local precompiled assets"
desc 'Remove all local precompiled assets'
task :cleanup do
run_locally do
execute "rm", "-rf", "public/assets"
execute "rm", "-rf", 'public/packs'
execute 'rm', '-rf', 'public/assets'
execute 'rm', '-rf', 'public/packs'
end
end

desc "Actually precompile the assets locally"
desc 'Actually precompile the assets locally'
task :prepare do
run_locally do
precompile_env = fetch(:precompile_env) || fetch(:rails_env) || 'production'
with rails_env: precompile_env do
execute "rake", "assets:clean"
execute "rake", "assets:precompile"
execute 'rake', 'assets:clean'
execute 'rake', 'assets:precompile'
end
end
end

desc "Performs rsync to app servers"
desc 'Performs rsync to app servers'
task :rsync do
on roles('web'), in: :parallel do |server|
run_locally do
remote_shell = %(-e "ssh -p 2987")

# rubocop: disable Layout/LineLength
commands = []
commands << "rsync -av --delete #{remote_shell} ./public/assets/ #{server.user}@#{server.hostname}:#{release_path}/public/assets/" if Dir.exist?('public/assets')
commands << "rsync -av --delete #{remote_shell} ./public/packs/ #{server.user}@#{server.hostname}:#{release_path}/public/packs/" if Dir.exist?('public/packs')
# rubocop: enable Layout/LineLength

commands.each do |command|
commands.each do |command|
if dry_run?
SSHKit.config.output.info command
else
Expand All @@ -142,9 +144,9 @@
end
end

after "bundler:install", "deploy:assets:prepare"
after "deploy:assets:prepare", "deploy:assets:rsync"
after "deploy:assets:rsync", "deploy:assets:cleanup"
after 'bundler:install', 'deploy:assets:prepare'
after 'deploy:assets:prepare', 'deploy:assets:rsync'
after 'deploy:assets:rsync', 'deploy:assets:cleanup'
after 'bundler:install', 'yarn:install'
after 'deploy:published', 'bundler:clean'

Expand Down
15 changes: 7 additions & 8 deletions esbuild.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,26 @@ import fs from 'fs';
import solid from 'babel-preset-solid';
import { build } from 'esbuild';
import { transformAsync } from '@babel/core';
// import babel from 'esbuild-plugin-babel';

function solidPlugin(options) {
function solidPlugin() {
return {
name: "esbuild:solid",
name: 'esbuild:solid',
setup(build) {
build.onLoad({ filter: /\.(t|j)sx$/ }, async (args) => {
const source = await fs.readFileSync(args.path, { encoding: "utf-8" });
const source = await fs.readFileSync(args.path, { encoding: 'utf-8' });
const filename = args.path.split('/').pop();
const result = await transformAsync(source, {
presets: [
[solid, {}]
],
filename,
sourceMaps: "inline",
sourceMaps: 'inline',
...{}
});
if (!result || result.code === void 0 || result.code === null) {
throw new Error("No result was provided from Babel");
throw new Error('No result was provided from Babel');
}
return { contents: result.code, loader: "js" };
return { contents: result.code, loader: 'js' };
});
}
}
Expand All @@ -37,5 +36,5 @@ build({
outdir: path.join(process.cwd(), 'app/assets/builds'),
absWorkingDir: path.join(process.cwd(), 'app/javascript'),
target: 'es2016',
plugins: [solidPlugin({})],
plugins: [solidPlugin()],
}).catch(() => process.exit(1))
13 changes: 6 additions & 7 deletions esbuild.watch.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,26 @@ import fs from 'fs';
import solid from 'babel-preset-solid';
import { context } from 'esbuild';
import { transformAsync } from '@babel/core';
// import babel from 'esbuild-plugin-babel';

function solidPlugin(options) {
function solidPlugin() {
return {
name: "esbuild:solid",
name: 'esbuild:solid',
setup(build) {
build.onLoad({ filter: /\.(t|j)sx$/ }, async (args) => {
const source = await fs.readFileSync(args.path, { encoding: "utf-8" });
const source = await fs.readFileSync(args.path, { encoding: 'utf-8' });
const filename = args.path.split('/').pop();
const result = await transformAsync(source, {
presets: [
[solid, {}]
],
filename,
sourceMaps: "inline",
sourceMaps: 'inline',
...{}
});
if (!result || result.code === void 0 || result.code === null) {
throw new Error("No result was provided from Babel");
throw new Error('No result was provided from Babel');
}
return { contents: result.code, loader: "js" };
return { contents: result.code, loader: 'js' };
});
}
}
Expand Down

0 comments on commit 98dc09c

Please sign in to comment.