Github Actionsからgemを公開する
Github actionsで rake release
を実行してgemをrubygemsに公開した、ということを書きます。
https://docs.github.com/ja/actions/guides/building-and-testing-ruby
Github actionsを使ってgemを公開する方法は、公式で紹介しているんだけど、「actionをマニュアル実行」もしくは「タグを打った」時にrubygemsにpushするworkflowを作る、ということが書かれている。
自分の気持ちでは、打ち間違いする可能性があるのでタグ名の入力を手で入れたくなくて、ソースコードに埋め込んでいる値でタグを打って欲しい、と思った。ということでこれをやりました。
(rake releaseを実行すると、githubにtagが打たれて、rubygemsにアップロードしている。)
name: Publish to RubyGems
on:
[workflow_dispatch]
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Ruby 2.6
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
bundler-cache: true
- name: Publish to RubyGems
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_API_TOKEN}\n" > $HOME/.gem/credentials
bundle exec rake release
env:
RUBYGEMS_API_TOKEN: "${{secrets.RUBYGEMS_API_TOKEN}}"
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
secrets.RUBYGEMS_API_TOKEN
は、 https://github.com/splaplapla/pbmenv/settings/secrets/actions
からセットする必要があります。
はまりポイントがいくつかあって、githubに書き込むときには権限が必要で、 actions/checkout@v2
でtokenを渡す必要があった。(rakeタスクのソースを読むとgit pushしていた。)。他には、なんかあったけど忘れた。
終わり
-
category:
- 日記 tags: