Created
December 12, 2024 16:38
-
-
Save chip/28a68933bc6702cd38e12d80dedc9720 to your computer and use it in GitHub Desktop.
Package Glimmer app for macOS using Traveling Ruby
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# For Bundler.with_clean_env | |
require 'bundler/setup' | |
require 'rake' | |
PACKAGE_NAME = 'pathos_gui' | |
VERSION = '1.0.0' | |
TRAVELING_RUBY_RELEASE = '20241122' | |
RUBY_VERSION = '3.2.6' unless ENV['RUBY_VERSION'] | |
TRAVELING_RUBY_VERSION = "#{TRAVELING_RUBY_RELEASE}-#{RUBY_VERSION}" | |
# TRAVELING_RUBY_VERSION = "20150210-2.1.5" | |
namespace :app do | |
desc 'Package your app' | |
task package: ['package:linux:x86', 'package:linux:x86_64', 'package:osx'] | |
end | |
namespace :package do | |
namespace :linux do | |
desc 'Package your app for Linux x86' | |
task x86: [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86.tar.gz"] do | |
create_package('linux-x86') | |
end | |
desc 'Package your app for Linux x86_64' | |
task x86_64: [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86_64.tar.gz"] do | |
create_package('linux-x86_64') | |
end | |
end | |
desc 'Package your app for OS X' | |
task osx: [:bundle_install, "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-osx-arm64.tar.gz"] do | |
create_package('osx-arm64') | |
end | |
desc 'Install gems to local directory' | |
task :bundle_install do | |
puts "bundle_install" | |
# if RUBY_VERSION !~ /^2\.1\./ | |
if RUBY_VERSION !~ /^3\.2\.6/ | |
abort "You can only 'bundle install' using Ruby 3.2.6, because that's what Traveling Ruby uses." | |
end | |
sh 'rm -rf packaging/tmp' | |
sh 'mkdir packaging/tmp' | |
sh 'cp Gemfile Gemfile.lock packaging/tmp/' | |
Bundler.with_clean_env do | |
puts "Bundler.with_clean_env" | |
sh 'cd packaging/tmp && env BUNDLE_IGNORE_CONFIG=1 bundle install --path ../vendor --without development' | |
end | |
puts 'rm -rf packaging/tmp' | |
sh 'rm -rf packaging/tmp' | |
sh 'rm -f packaging/vendor/*/*/cache/*' | |
end | |
end | |
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86.tar.gz" do | |
download_runtime('linux-x86') | |
end | |
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-linux-x86_64.tar.gz" do | |
download_runtime('linux-x86_64') | |
end | |
file "packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-osx-arm64.tar.gz" do | |
download_runtime('osx-arm64') | |
end | |
def create_package(target) | |
package_dir = "#{PACKAGE_NAME}-#{VERSION}-#{target}" | |
puts "package_dir #{package_dir}" | |
sh "rm -rf #{package_dir}" | |
sh "mkdir #{package_dir}" | |
sh "mkdir -p #{package_dir}/lib/app" | |
# sh "cp hello.rb #{package_dir}/lib/app/" | |
sh "cp -R app/ #{package_dir}/lib/app/" | |
sh "mkdir #{package_dir}/lib/ruby" | |
sh "tar -xzf packaging/traveling-ruby-#{TRAVELING_RUBY_VERSION}-#{target}.tar.gz -C #{package_dir}/lib/ruby" | |
sh "cp packaging/wrapper.sh #{package_dir}/#{PACKAGE_NAME}" | |
sh "cp -pR packaging/vendor #{package_dir}/lib/" | |
sh "cp LICENSE.txt VERSION #{package_dir}/lib/" | |
sh "cp Gemfile Gemfile.lock #{package_dir}/lib/vendor/" | |
sh "mkdir #{package_dir}/lib/vendor/.bundle" | |
sh "cp packaging/bundler-config #{package_dir}/lib/vendor/.bundle/config" | |
return if ENV['DIR_ONLY'] | |
sh "tar -czf #{package_dir}.tar.gz #{package_dir}" | |
sh "rm -rf #{package_dir}" | |
end | |
def download_runtime(target) | |
puts "download_runtime target: #{target}" | |
url = "https://github.com/YOU54F/traveling-ruby/releases/download/rel-#{TRAVELING_RUBY_RELEASE}/traveling-ruby-#{TRAVELING_RUBY_VERSION}-#{target}.tar.gz" | |
puts "download_runtime url: #{url}" | |
sh 'cd packaging && curl -L -O --fail ' + url | |
# "https://d6r77u77i8pq3.cloudfront.net/releases/traveling-ruby-#{TRAVELING_RUBY_VERSION}-#{target}.tar.gz" | |
# "https://github.com/YOU54F/traveling-ruby/releases/download/rel-20241122/traveling-ruby-20241122-3.2.6-osx-arm64.tar.gz"" | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment