2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RubyGems の作成・公開手順【Ruby 2.6】

Posted at

今回 RubyGems にライブラリを公開しました。その作成・公開の手順をまとめます。

環境

  • Ruby 2.6.4
  • Bundler 2.2.6

手順

大まかな流れは「【Ruby】gemの作り方から公開まで :lgtm:」を参考にさせていただきました。こちらで非常に良くまとめられているので、以下では手順をザッと列挙していきます。

作成

プロジェクトの準備

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 の依存関係を記載します。

gemspec
spec.add_dependency "[GEM_NAME]"

更新後、 bundle install します。

GitHub の設定

.gitignore

.gitignoreGemfile.lock を追加します。

.gitignore
Gemfile.lock

詳しいことは「gem開発においてGemfile.lockをコミットするかどうか :lgtm:」をご参照ください。

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 ブランチを追加しておきます。

参考:Githubでブランチ保護設定した時の作業メモ :lgtm:

処理の実装

lib 配下の [YOUR_GEM_NAME].rb に処理を書いていきます。

コンソール

挙動確認でコンソールを叩きたいときは、次のコマンドで irb を起動できます。

./bin/console
irb(main):001:0>

テスト & 静的解析

次のコマンドで rspecrubocop (デフォルトのタスク)が実行されます。

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 が表示されれば完了です :tada:

References

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?