diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..797b2fe1 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,42 @@ +name: Release +on: + push: + tags: + - '*.*.*' + workflow_dispatch: + +jobs: + build: + name: Build and Release + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + steps: + - uses: actions/checkout@v4 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '2.6' + - run: bundle install + + - name: Publish to GPR + env: + GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}" + 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 + if [ ${{ github.ref_type }} == "tag" ]; then + gem push --verbose \ + --key github \ + --host https://rubygems.pkg.github.com/${{ github.repository_owner }} \ + *.gem + fi + - name: Upload gem as action artifact + uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce + if: ${{ always() }} + with: + path: *.gem