From f31001dd510e7a3ace64197ad915cada53ae940b Mon Sep 17 00:00:00 2001 From: default Date: Fri, 20 Feb 2026 11:14:42 +0000 Subject: [PATCH] EC-21: FEAT: Added better tools for auto build & publishing Refers: Evercatch/evercatch-board#21 --- Gemfile | 14 ++++++++++++++ Rakefile | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 Gemfile create mode 100644 Rakefile diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..9fab568 --- /dev/null +++ b/Gemfile @@ -0,0 +1,14 @@ +# Gemfile + +# Default source for all public gems +source "https://rubygems.org" + +# Other project gems +gem "rails", "~> 7.0" +gem "puma", "~> 6.4" + +# Specify that the 'evercatch' gem should be fetched from Gitea server. +# The user must have their ~/.gem/credentials configured. +source "https://git.psmattas.com/api/packages/Evercatch/rubygems" do + gem "evercatch", "~> 0.0.1" +end diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..e7458e3 --- /dev/null +++ b/Rakefile @@ -0,0 +1,39 @@ +# Rakefile for building and publishing the evercatch gem + +# --- Configuration --- +GITEA_HOST = "https://git.psmattas.com/api/packages/Evercatch/rubygems" +GEMSPEC_FILE = "evercatch.gemspec" +# -------------------- + +# Load gemspec to get name and version +spec = Gem::Specification.load(GEMSPEC_FILE) +PACKAGE_FILE = "#{spec.name}-#{spec.version}.gem" + +desc "Build the #{PACKAGE_FILE} gem" +task :build do + puts "Building #{PACKAGE_FILE}..." + system("gem build #{GEMSPEC_FILE}") +end + +namespace :publish do + desc "Publish the gem to the public RubyGems.org registry" + task :public => :build do + puts "Publishing #{PACKAGE_FILE} to RubyGems.org..." + system("gem push #{PACKAGE_FILE}") + end + + desc "Publish the gem to the private Gitea registry" + task :gitea => :build do + puts "Publishing #{PACKAGE_FILE} to Gitea..." + system("gem push --host #{GITEA_HOST} #{PACKAGE_FILE}") + end + + desc "Publish the gem to both Gitea and RubyGems.org" + task :all => [:gitea, :public] +end + +desc "Clean up built package files" +task :clean do + puts "Cleaning up *.gem files..." + system("rm -f *.gem") +end