GiitHub Actions에서 Gem 게시

4595 단어 RubyGemGitHubActions
이 글은 암수현립대학, 암수사람들의 7일째 글입니다!
개시하다
Gim의 발표를 자동화하고 싶어서 GiitHub Action이 가능한지 조사했습니다.
gem의 발표 방법은 주로 두 가지가 있다.
  • gem push
  • release퀘스트
  • bundler의 라크 작업
  • GiitHub Actions의 공식 문서에는 gem push의 예가 있지만 release 작업의 예가 없습니다.
    따라서 release 임무를 사용할 때의 방법을 문장으로 한다.
    워크플로우의 준비release 작업에서gem를 발표할 때의workflow는 다음과 같다.
    name: Ruby Gem
    on:
      workflow_dispatch:
    jobs:
      release:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: ruby/setup-ruby@v1
            with:
              ruby-version: 3.0.0
          - run: bundle install
    
          - name: Setup git config
            run: |
              git config --global user.email "YOUR_EMAIL"
              git config --global user.name "YOUR_NAME"
    
          - name: Publish to RubyGems
            run: bundle exec rake release
        env:
          GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
    
    루비의 버전, 이벤트, git config에 대해 마음에 드는 것을 선택하세요.
    해설
    공식gem push의 예와는 다른 부분의 해설이다.
    - name: Setup git config
      run: |
        git config --global user.email "YOUR_EMAIL"
        git config --global user.name "YOUR_NAME"
    
    release퀘스트는gem버전에 따라gittag를 자동으로 부여하고push를 진행합니다.
    따라서 준비gitconfig가 필요하다.
    - name: Publish to RubyGems
      run: bundle exec rake release
    
    release의rake퀘스트입니다.
    env:
      GEM_HOST_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }}
    
    bundlerrelease퀘스트 내부 사용gemgem pushgem.
    그런 다음 환경 변수gem에서 API Key를 읽을 수 있습니다.
    https://guides.rubygems.org/command-reference/
    The push command will use ~/.gem/credentials to authenticate to a server, but you can use the RubyGems environment variable GEM_HOST_API_KEY to set the api key to authenticate.
    따라서 API Key를 GEM_HOST_API_KEY에 준비하지 않아도 인증이 가능하다.
    시크릿에서 API Key 설정
    Secrets는 GiitHub 웨어하우스~/.gem/credentials에서 설치할 수 있습니다.

    과제.
    또한 RubyGems에 게시할 때 OPP 인증을 받아야 한다는 설정도 있습니다.Settings 환경 변수에 OTP 코드를 설정하는 것이 좋을 것 같지만 현재 시도에만 한정되어 읽을 수 없다.
    OTP 인증을 잘 할 수 있는 방법이 있다면 알려주세요.

    좋은 웹페이지 즐겨찾기