今回 RubyGems にライブラリを公開しました。その作成・公開の手順をまとめます。
環境
- Ruby 2.6.4
- Bundler 2.2.6
手順
大まかな流れは「【Ruby】gemの作り方から公開まで 」を参考にさせていただきました。こちらで非常に良くまとめられているので、以下では手順をザッと列挙していきます。
作成
プロジェクトの準備
bundler の更新後、次のコマンドで gem の雛形を作成します。
bundle gem [YOUR_GEM_NAME] -t
自動生成のために設定を色々と聞かれます。
Test framework
Do you want to generate tests with your gem?
.
.
.
Enter a test framework. rspec/minitest/test-unit/(none): rspec
CI service
Do you want to set up continuous integration for your gem? Supported services:
.
.
.
Enter a CI service. github/travis/gitlab/circle/(none): circle
MIT license
Do you want to license your code permissively under the MIT license?
.
.
.
y/(n): y
Code of conduct
Do you want to include a code of conduct in gems you generate?
.
.
.
y/(n): y
rubocop
Do you want to add rubocop as a dependency for gems you generate?
.
.
.
y/(n): y
gemspec の更新
gemspec の TODO
を確認し、必要に応じて記載を更新します。
また、処理に必要な gem の依存関係を記載します。
spec.add_dependency "[GEM_NAME]"
更新後、 bundle install
します。
GitHub の設定
.gitignore
.gitignore
に Gemfile.lock
を追加します。
Gemfile.lock
詳しいことは「gem開発においてGemfile.lockをコミットするかどうか 」をご参照ください。
master -> main
このバージョンだと、デフォルトのブランチ名が master
ですが、今は main
を使うべきだと思うのでブランチ名を修正します。
git add -A
git commit -m "initial commit"
git checkout -b main
git branch -D master
remote add
GitHub に新規リポジトリを作成し、作成中の gem プロジェクトとリンクさせます。
git remote add origin https://github.com/[YOUR_ID]/[YOUR_GEM_NAME].git
git branch -M main
git push -u origin main
Circle CI
Circle CI にログインし、デフォルトで作成されている .circleci/config.yml
でセットアップを実行します。
ブランチ保護
GitHub のブランチ保護設定に main ブランチを追加しておきます。
処理の実装
lib
配下の [YOUR_GEM_NAME].rb
に処理を書いていきます。
コンソール
挙動確認でコンソールを叩きたいときは、次のコマンドで irb を起動できます。
./bin/console
irb(main):001:0>
テスト & 静的解析
次のコマンドで rspec
と rubocop
(デフォルトのタスク)が実行されます。
bundle exec rake
公開
公開手順の公式ドキュメント:こちら
RubyGems.org アカウント作成
gem の公開には RubyGems.org のアカウントが必要です。
rake build
アカウント作成後、以下のコマンドで公開に必要な pkg/xxx.gem
ファイルをビルドします。
rake build
[YOUR_GEM_NAME] 0.1.0 built to pkg/[YOUR_GEM_NAME]-0.1.0.gem.
gem push
次のコマンドで作成した pkg/xxx.gem
ファイルをプッシュします。
gem push pkg/[YOUR_GEM_NAME]-0.1.0.gem
RubyGems.org のメールアドレスとパスワードを聞かれるので、それぞれ入力します。
Enter your RubyGems.org credentials.
Don't have an account yet? Create one at https://rubygems.org/sign_up
Email: xxxxx@example.com
Password:
Signed in.
Pushing gem to https://rubygems.org...
Successfully registered gem: [YOUR_GEM_NAME] (0.1.0)
Successfully registered
が表示されれば完了です