# .github/workflows/release.yml name: Test, Lint, Release and Publish on: push: branches: - main jobs: release-please: runs-on: ubuntu-latest steps: - uses: GoogleCloudPlatform/release-please-action@v2 id: release with: release-type: ruby package-name: vagrant-zones bump-minor-pre-major: true bump-patch-for-minor-pre-major: true version-file: "lib/vagrant-zones/version.rb" # Checkout code if release was created - uses: actions/checkout@v2 if: ${{ steps.release.outputs.release_created }} # Setup ruby if a release was created - name: Set up Ruby 3.0.0 uses: ruby/setup-ruby@v1 with: ruby-version: 3.0.0 if: ${{ steps.release.outputs.release_created }} # Bundle install - run: bundle install if: ${{ steps.release.outputs.release_created }} # Check if Passing Lint Requirements - name: Run Rake tests id: tests run: bundle exec rake if: ${{ steps.release.outputs.release_created }} # Publish to GPR - name: Publish to GPR 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 gem push --KEY github --host https://rubygems.pkg.github.com/${OWNER} *.gem env: GEM_HOST_API_KEY: "Bearer ${{secrets.GITHUB_TOKEN}}" OWNER: ${{ github.repository_owner }} if: steps.tests.outputs.exit_code == 0 && steps.release.outputs.release_created # Publish to Ruby Gems - name: Publish to RubyGems 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 gem build *.gemspec gem push *.gem env: GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}" if: steps.tests.outputs.exit_code == 0 && steps.release.outputs.release_created