diff --git a/.github/workflows/create-releases.yml b/.github/workflows/create-releases.yml new file mode 100644 index 00000000..c1ea30fa --- /dev/null +++ b/.github/workflows/create-releases.yml @@ -0,0 +1,43 @@ +name: Create releases +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + release: + name: release + if: github.ref == 'refs/heads/main' && github.repository == 'openai/openai-ruby' + runs-on: ubuntu-latest + environment: publish + permissions: + contents: read + id-token: write + + steps: + - uses: actions/checkout@v4 + + - uses: stainless-api/trigger-release-please@v1 + id: release + with: + repo: ${{ github.event.repository.full_name }} + stainless-api-key: ${{ secrets.STAINLESS_API_KEY }} + + - name: Set up Ruby + if: ${{ steps.release.outputs.releases_created }} + uses: ruby/setup-ruby@v1 + with: + bundler-cache: false + ruby-version: '3.1' + - run: |- + bundle install + + - name: Publish to RubyGems.org + if: ${{ steps.release.outputs.releases_created }} + run: | + bash ./bin/publish-gem + env: + # `RUBYGEMS_HOST` is only required for private gem repositories, not https://rubygems.org + RUBYGEMS_HOST: ${{ secrets.OPENAI_RUBYGEMS_HOST || secrets.RUBYGEMS_HOST }} + GEM_HOST_API_KEY: ${{ secrets.OPENAI_GEM_HOST_API_KEY || secrets.GEM_HOST_API_KEY }} diff --git a/.github/workflows/publish-gem.yml b/.github/workflows/publish-gem.yml index d6ba1c4a..7502f1c2 100644 --- a/.github/workflows/publish-gem.yml +++ b/.github/workflows/publish-gem.yml @@ -1,13 +1,9 @@ -# This workflow is triggered when a GitHub release is created. -# It can also be run manually to re-publish to rubygems.org in case it failed for some reason. +# Workflow for re-publishing to rubygems.org in case it failed for some reason. # You can run this workflow by navigating to https://www.github.com/openai/openai-python/actions/workflows/publish-gem.yml name: Publish Gem on: workflow_dispatch: - release: - types: [published] - jobs: publish: name: publish