diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..629ba1d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,45 @@ +name: Release gem + +on: + push: + paths: + - "lib/annotato/version.rb" + branches: + - main + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: "3.4.1" + bundler-cache: true + + - name: Install dependencies + run: | + bundle install --jobs 4 --retry 3 + + - name: Build gem + run: | + gem build *.gemspec + ls -la + + - name: Publish to RubyGems + env: + RUBYGEMS_API_KEY: ${{ secrets.RUBYGEMS_API_KEY }} + run: | + GEM_FILE=$(ls *.gem) + mkdir -p ~/.gem + cat << EOF > ~/.gem/credentials + --- + :rubygems_api_key: ${RUBYGEMS_API_KEY} + EOF + chmod 0600 ~/.gem/credentials + + gem push "$GEM_FILE"