.github/workflows/deploy-rswag.yml

Summary

Maintainability
Test Coverage
name: Publish Rswag Gems

on:
  workflow_dispatch:
    inputs:
      version:
        description: "gem version to publish"
        type: string
        required: true

jobs:
  build:
    name: Build + Publish
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write

    steps:
      - uses: actions/checkout@v4
      - name: Set up Ruby 3.1
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.1.0

      - name: Publish rswag-api
        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
          cd rswag-api
          gem build rswag-api.gemspec
          gem push *.gem
        env:
          GEM_HOST_API_KEY: "${{secrets.BOOKOFGREG_RUBYGEMS_API_KEY}}"
          RUBYGEMS_VERSION: "${{github.event.inputs.version}}"

      - name: Publish rswag-specs
        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
          cd rswag-specs
          gem build rswag-specs.gemspec
          gem push *.gem
        env:
          GEM_HOST_API_KEY: "${{secrets.BOOKOFGREG_RUBYGEMS_API_KEY}}"
          RUBYGEMS_VERSION: "${{github.event.inputs.version}}"

      - name: Publish rswag-ui
        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
          cd rswag-ui
          npm install
          gem build rswag-ui.gemspec
          gem push *.gem
        env:
          GEM_HOST_API_KEY: "${{secrets.BOOKOFGREG_RUBYGEMS_API_KEY}}"
          RUBYGEMS_VERSION: "${{github.event.inputs.version}}"

      - name: Publish rswag
        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
          cd rswag
          gem build rswag.gemspec
          echo $RUBYGEMS_VERSION
          gem push *.gem
        env:
          GEM_HOST_API_KEY: "${{secrets.BOOKOFGREG_RUBYGEMS_API_KEY}}"
          RUBYGEMS_VERSION: "${{github.event.inputs.version}}"