์๊ฐ
์ด ๊ฐ์ด๋์์๋ Ruby ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น๋ํ๊ณ ํ ์คํธํ๋ CI(์ฐ์ ํตํฉ) ์ํฌํ๋ก๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ ์ค๋๋ค. CI ํ ์คํธ์ ํต๊ณผํ๋ฉด ์ฝ๋๋ฅผ ๋ฐฐํฌํ๊ฑฐ๋ gem์ ๊ฒ์ํ ์ ์์ต๋๋ค.
ํ์ ์กฐ๊ฑด
Ruby, YAML, ์ํฌํ๋ก ๊ตฌ์ฑ ์ต์ ๊ณผ ์ํฌํ๋ก ํ์ผ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ดํดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
Ruby ์ํฌํ๋ก ํ ํ๋ฆฟ ์ฌ์ฉ
๋น ๋ฅด๊ฒ ์์ํ๋ ค๋ฉด ์ํฌํ๋ก ํ
ํ๋ฆฟ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ .github/workflows
๋๋ ํฐ๋ฆฌ์ ์ถ๊ฐํฉ๋๋ค.
{data variables.product.prodname_dotcom %}์(๋) ๋๋ถ๋ถ์ Ruby ํ๋ก์ ํธ์ ์ ํฉํ Ruby์ฉ ์คํํฐ ์ํฌํ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๊ฐ์ด๋์ ํ์ ์น์ ์์๋ ์ด ์ํฌํ๋ก ํ ํ๋ฆฟ์ ์ฌ์ฉ์ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
GitHub์์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ๋ณธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
-
๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ ์๋์์ ์์ ์ ํด๋ฆญํฉ๋๋ค.
-
๋ฆฌํฌ์งํ ๋ฆฌ์ ์ํฌํ๋ก๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ ์ ์ํฌํ๋ก๋ฅผ ํด๋ฆญํฉ๋๋ค.
-
"์ํฌํ๋ก ์ ํ" ํ์ด์ง์๋ ๊ถ์ฅ๋๋ ์ํฌํ๋ก ํ ํ๋ฆฟ์ ์ ํ ํญ๋ชฉ์ด ํ์๋ฉ๋๋ค. "ruby"๋ฅผ ๊ฒ์ํฉ๋๋ค.
-
์ง์์ ํตํฉ์ ํด๋ฆญํ์ฌ ์ํฌํ๋ก ์ ํ์ ํํฐ๋งํฉ๋๋ค.
-
"Ruby" ์ํฌํ๋ก์์ ๊ตฌ์ฑ์ ํด๋ฆญํฉ๋๋ค.
-
ํ์์ ๋ฐ๋ผ ์ํฌํ๋ก๋ฅผ ํธ์งํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ์ฉํ๋ ค๋ Ruby ๋ฒ์ ์ ๋ณ๊ฒฝํฉ๋๋ค.
์ฐธ๊ณ ํญ๋ชฉ
- ์ํฌํ๋ก ํ ํ๋ฆฟ์๋ GitHub์์ ์ธ์ฆ๋์ง ์์ ์์ ์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ 3์๊ฐ ์ ๊ณตํ๋ ์์ ์ ๋ณ๋์ ์๋น์ค ์ฝ๊ด, ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ์ ์ฑ ๋ฐ ์ง์ ๋ฌธ์๋ฅผ ์ ์ฉํฉ๋๋ค.
- ํ์ฌ์ ์์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ปค๋ฐ SHA์์ ์ง์ ํ ๋ฒ์ ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์์ ์ ์์ ํ๊ณ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ SHA๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ฌ ๋ฒ์ ์ ์ง์ ํ ์ ์์ง๋ง ๊ฒฝ๊ณ ์์ด ์์ ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ณด์ ์ฌ์ฉ ์ฐธ์กฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
-
๋ณ๊ฒฝ ๋ด์ฉ ์ปค๋ฐ์ ํด๋ฆญํฉ๋๋ค.
ruby.yml
์ํฌํ๋ก ํ์ผ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ .github/workflows
๋๋ ํฐ๋ฆฌ์ ์ถ๊ฐ๋ฉ๋๋ค.
Ruby ๋ฒ์ ์ง์
Ruby ๋ฒ์ ์ ์ง์ ํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ GitHub์ Ruby ์กฐ์ง์์ ์ ๊ณตํ๋ ruby/setup-ruby
์์
์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด ์์
์ ์ํฌํ๋ก์์ ์คํ๋๋ ๊ฐ ์์
์ ๋ํด ์ง์๋๋ ๋ชจ๋ Ruby ๋ฒ์ ์ PATH
์ ์ถ๊ฐํฉ๋๋ค. ์์ธํ ๋ด์ฉ ๋ฐ ์ฌ์ฉ ๊ฐ๋ฅํ Ruby ๋ฒ์ ์ ruby/setup-ruby
๋ฅผ ์ฐธ์กฐํ์ธ์.
Ruby์ ruby/setup-ruby
์์
์ ์ฌ์ฉํ๋ ๊ฒ์ Ruby์ ์ฌ๋ฌ ์คํ๊ธฐ์ ๋ฒ์ ๊ฐ์ ์ผ๊ด๋ ๋์์ ๋ณด์ฅํ๋ฏ๋ก GitHub Actions์ ํจ๊ป Ruby๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์
๋๋ค.
์ด setup-ruby
์์
์ Ruby ๋ฒ์ ์ ์
๋ ฅ์ผ๋ก ์ฌ์ฉํ๊ณ ์คํ๊ธฐ์์ ํด๋น ๋ฒ์ ์ ๊ตฌ์ฑํฉ๋๋ค.
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '3.1' # Not needed with a .ruby-version file
- run: bundle install
- run: bundle exec rake
๋๋ .ruby-version
ํ์ผ์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฃจํธ๋ก ์ฒดํฌ ์ธํ๋ฉด setup-ruby
์์ ํด๋น ํ์ผ์ ์ ์๋ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค.
์ฌ๋ฌ ๋ฒ์ ์ Ruby๋ก ํ ์คํธ
๋ ์ด์์ Ruby ๋ฒ์ ์ผ๋ก ์ํฌํ๋ก๋ฅผ ์คํํ๋ ๋งคํธ๋ฆญ์ค ์ ๋ต์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด 3.1, 3.0, 2.7 ๋ฒ์ ์ ์ต์ ํจ์น ๋ฆด๋ฆฌ์ค์ ๋ํด ์ฝ๋๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค.
strategy:
matrix:
ruby-version: ['3.1', '3.0', '2.7']
ruby-version
๋ฐฐ์ด์ ์ง์ ๋ Ruby์ ๊ฐ ๋ฒ์ ์ ๋์ผํ ๋จ๊ณ๋ฅผ ์คํํ๋ ์์
์ ๋ง๋ญ๋๋ค. ${{ matrix.ruby-version }}
์ปจํ
์คํธ๋ ํ์ฌ ์์
์ ๋ฒ์ ์ ์ก์ธ์คํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ํ๋ ฌ ์ ๋ต ๋ฐ ์ปจํ
์คํธ์ ๋ํ ์์ธํ ๋ด์ฉ์ GitHub Actions์ ๋ํ ์ํฌํ๋ก ๊ตฌ๋ฌธ ๋ฐ ์ปจํ
์คํธ ์ฐธ์กฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
๋งคํธ๋ฆญ์ค ์ ๋ต์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธ๋ ์ ์ฒด ์ํฌํ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
# ์ด ์ํฌํ๋ก๋ GitHub์์ ์ธ์ฆ๋์ง ์์ ์์
์ ์ฌ์ฉํฉ๋๋ค.
# ์์
์ ํ์ฌ์์ ์ ๊ณตํ๋ฉฐ
# ๋ณ๋์ ์๋น์ค ์ฝ๊ด, ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ, ์ง์ ์ค๋ช
์์์ ๊ท์ ๋ฉ๋๋ค.
# ์ฐธ์กฐํ์ธ์.
# ์ปค๋ฐ SHA์ ์์
์ ๊ณ ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
# ์ต์ ๋ฒ์ ์ ์ป์ผ๋ ค๋ฉด SHA๋ฅผ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
# ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ ์๋ ์์ง๋ง ๊ฒฝ๊ณ ์์ด ์์
์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
name: Ruby CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.1', '3.0', '2.7']
steps:
- uses: actions/checkout@v4
- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: bundle install
- name: Run tests
run: bundle exec rake
๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ ์ค์น
setup-ruby
์์
์ ์๋์ผ๋ก ๋ฒ๋ค๋ฌ๋ฅผ ์ค์นํฉ๋๋ค. ๋ฒ์ ์ gemfile.lock
ํ์ผ์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ์ ๊ธ ํ์ผ์ ๋ฒ์ ์ด ์์ผ๋ฉด ํธํ๋๋ ์ต์ ๋ฒ์ ์ด ์ค์น๋ฉ๋๋ค.
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '3.1'
- run: bundle install
์ข ์์ฑ ์บ์ฑ
setup-ruby
์์
์ ์คํ ๊ฐ์ gem์ ์บ์ฑ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์บ์ฑ์ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ค๋ฉด ๋ค์์ ์ค์ ํฉ๋๋ค.
steps:
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
bundler-cache: true
๊ทธ๋ฌ๋ฉด vendor/cache
์ gem์ ์ค์นํ๋๋ก ๋ฒ๋ค๋ฌ๊ฐ ๊ตฌ์ฑ๋ฉ๋๋ค. ์ํฌํ๋ก๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์คํํ ๋๋ง๋ค ์ด ํด๋๋ GitHub Actions์ ์ํด ์บ์๋๊ณ ํ์ ์ํฌํ๋ก ์คํ์ ์ํด ๋ค์ ๋ค์ด๋ก๋๋ฉ๋๋ค. gemfile.lock
๋ฐ Ruby ๋ฒ์ ์ ํด์๊ฐ ์บ์ ํค๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ gem์ ์ค์นํ๊ฑฐ๋ ๋ฒ์ ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ ์บ์๊ฐ ์ ํจํ์ง ์๊ฒ ๋๊ณ ๋ฒ๋ค๋ฌ๊ฐ ์ ์ค์น๋ฅผ ์ํํฉ๋๋ค.
setup-ruby ์์ด ์บ์ฑ
์บ์ฑ์ ๋ํ ์ ์ด๋ฅผ ๊ฐํํ๊ธฐ ์ํด actions/cache
์์
์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ข
์์ฑ ์บ์ฑ ์ฐธ์กฐ์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
steps:
- uses: actions/cache@v4
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Bundle install
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
๋งคํธ๋ฆญ์ค ๋น๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์บ์ ํค์ ๋งคํธ๋ฆญ์ค ๋ณ์๋ฅผ ํฌํจํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ํ Ruby ๋ฒ์ (matrix.ruby-version
)๊ณผ ์ด์ ์ฒด์ (matrix.os
)์ ๋ํ ๋งคํธ๋ฆญ์ค ์ ๋ต์ด ์๋ ๊ฒฝ์ฐ ์ํฌํ๋ก ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค.
steps:
- uses: actions/cache@v4
with:
path: vendor/bundle
key: bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
bundle-use-ruby-${{ matrix.os }}-${{ matrix.ruby-version }}-
- name: Bundle install
run: |
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
์ฝ๋ ๋งคํธ๋ฆญ์ค ํ ์คํธ
๋ค์ ์์ ๋งคํธ๋ฆญ์ค๋ Ubuntu ๋ฐ macOS์์ MRI, JRuby, TruffleRuby์ ๋ชจ๋ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค ๋ฐ ํค๋ ๋ฒ์ ์ ํ ์คํธํฉ๋๋ค.
# ์ด ์ํฌํ๋ก๋ GitHub์์ ์ธ์ฆ๋์ง ์์ ์์
์ ์ฌ์ฉํฉ๋๋ค.
# ์์
์ ํ์ฌ์์ ์ ๊ณตํ๋ฉฐ
# ๋ณ๋์ ์๋น์ค ์ฝ๊ด, ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ, ์ง์ ์ค๋ช
์์์ ๊ท์ ๋ฉ๋๋ค.
# ์ฐธ์กฐํ์ธ์.
# ์ปค๋ฐ SHA์ ์์
์ ๊ณ ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
# ์ต์ ๋ฒ์ ์ ์ป์ผ๋ ค๋ฉด SHA๋ฅผ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
# ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ ์๋ ์์ง๋ง ๊ฒฝ๊ณ ์์ด ์์
์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
name: Matrix Testing
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ${{ matrix.os }}-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu, macos]
ruby: [2.5, 2.6, 2.7, head, debug, jruby, jruby-head, truffleruby, truffleruby-head]
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: ${{ matrix.ruby }}
- run: bundle install
- run: bundle exec rake
์ฝ๋ ๋ฆฐํธ
๋ค์ ์์์์๋ rubocop
์ ์ค์นํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ์ผ์ ๋ฆฐํธํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ RuboCop์ ์ฐธ์กฐํ์ธ์. ํน์ ๋ฆฐํ
๊ท์น์ ๊ฒฐ์ ํ๋๋ก Rubocop์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
# ์ด ์ํฌํ๋ก๋ GitHub์์ ์ธ์ฆ๋์ง ์์ ์์
์ ์ฌ์ฉํฉ๋๋ค.
# ์์
์ ํ์ฌ์์ ์ ๊ณตํ๋ฉฐ
# ๋ณ๋์ ์๋น์ค ์ฝ๊ด, ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ, ์ง์ ์ค๋ช
์์์ ๊ท์ ๋ฉ๋๋ค.
# ์ฐธ์กฐํ์ธ์.
# ์ปค๋ฐ SHA์ ์์
์ ๊ณ ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
# ์ต์ ๋ฒ์ ์ ์ป์ผ๋ ค๋ฉด SHA๋ฅผ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
# ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ ์๋ ์์ง๋ง ๊ฒฝ๊ณ ์์ด ์์
์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
name: Linting
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '2.6'
- run: bundle install
- name: Rubocop
run: rubocop -f github
-f github
๋ฅผ ์ง์ ํ๋ฉด RuboCop ์ถ๋ ฅ์ GitHub์ ์ฃผ์ ํ์์ด ๋ฉ๋๋ค. ๋ชจ๋ ๋ฆฐํ
์ค๋ฅ๋ ๋์ด์ค๊ธฐ ์์ฒญ์ ๋ณ๊ฒฝ๋ ํ์ผ ํญ์ ์ธ๋ผ์ธ์ผ๋ก ํ์๋ฉ๋๋ค.
Gems ๊ฒ์
CI ํ ์คํธ์ ํต๊ณผํ๋ฉด ์ํ๋ ํจํค์ง ๋ ์ง์คํธ๋ฆฌ์ Ruby ํจํค์ง๋ฅผ ๊ฒ์ํ๋๋ก ์ํฌํ๋ก๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ ๋น๋ฐ์ ์ฌ์ฉํ์ฌ ํจํค์ง๋ฅผ ๊ฒ์ํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ก์ธ์ค ํ ํฐ ๋๋ ์๊ฒฉ ์ฆ๋ช
์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ค์ ์์์์๋ ํจํค์ง๋ฅผ ๋ง๋ค๊ณ GitHub Package Registry
๋ฐ RubyGems
์ ๊ฒ์ํฉ๋๋ค.
# ์ด ์ํฌํ๋ก๋ GitHub์์ ์ธ์ฆ๋์ง ์์ ์์
์ ์ฌ์ฉํฉ๋๋ค.
# ์์
์ ํ์ฌ์์ ์ ๊ณตํ๋ฉฐ
# ๋ณ๋์ ์๋น์ค ์ฝ๊ด, ๊ฐ์ธ์ ๋ณด์ฒ๋ฆฌ๋ฐฉ์นจ, ์ง์ ์ค๋ช
์์์ ๊ท์ ๋ฉ๋๋ค.
# ์ฐธ์กฐํ์ธ์.
# ์ปค๋ฐ SHA์ ์์
์ ๊ณ ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
# ์ต์ ๋ฒ์ ์ ์ป์ผ๋ ค๋ฉด SHA๋ฅผ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
# ํ๊ทธ ๋๋ ๋ถ๊ธฐ๋ฅผ ์ฐธ์กฐํ ์๋ ์์ง๋ง ๊ฒฝ๊ณ ์์ด ์์
์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
name: Ruby Gem
on:
# Manually publish
workflow_dispatch:
# Alternatively, publish whenever changes are merged to the `main` branch.
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
name: Build + Publish
runs-on: ubuntu-latest
permissions:
packages: write
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up Ruby 2.6
uses: ruby/setup-ruby@ec02537da5712d66d4d50a0f33b7eb52773b5ed1
with:
ruby-version: '2.6'
- run: bundle install
- name: Publish to GPR
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:github: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem
env:
GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}"
OWNER: ${{ github.repository_owner }}
- name: Publish to RubyGems
run: |
mkdir -p $HOME/.gem
touch $HOME/.gem/credentials
chmod 0600 $HOME/.gem/credentials
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
gem build *.gemspec
gem push *.gem
env:
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"