Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gem CI workflow: Check if the gem builds #100

Open
bastelfreak opened this issue Jun 28, 2024 · 1 comment
Open

gem CI workflow: Check if the gem builds #100

bastelfreak opened this issue Jun 28, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@bastelfreak
Copy link

Use Case

It makes sense to check if a gem still builds within a PR. That ensures that an upcoming release isn't broken. At Vox Pupuli we use the following matrix:

jobs:
  rubocop:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Ruby ${{ matrix.ruby }}
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
          bundler-cache: true
      - name: Run Rubocop
        run: bundle exec rake rubocop
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby:
          - "2.7"
          - "3.0"
          - "3.1"
          - "3.2"
          - "3.3"
    name: Ruby ${{ matrix.ruby }}
    steps:
      - uses: actions/checkout@v4
      - name: Install Ruby ${{ matrix.ruby }}
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: ${{ matrix.ruby }}
          bundler-cache: true
      - name: Run tests
        run: bundle exec rake
      - name: Verify gem builds
        run: gem build --strict --verbose *.gemspec

Describe the Solution You Would Like

Run gem builds with gem build --strict --verbose *.gemspec during each PR. The same should be applied for releasing a gem.

Describe Alternatives You've Considered

A clear and concise description of any alternative solutions or features you've considered.

Additional Context

This can be considered as a breaking change for gems without proper dependency boundaries. In those cases the command will fail with --strict. This change shouldn't be implemented in the main branch but rather in something like a v2. See #89

@bastelfreak bastelfreak added the enhancement New feature or request label Jun 28, 2024
@jordanbreen28
Copy link
Contributor

thanks @bastelfreak! We agree this is a good change to have, and will help catch broken gem builds before they are merged. We have added this to the backlog.

@jordanbreen28 jordanbreen28 moved this from Backlog to Done in DevX Community Triage Jul 5, 2024
@jordanbreen28 jordanbreen28 closed this as completed by moving to Done in DevX Community Triage Jul 5, 2024
@jordanbreen28 jordanbreen28 reopened this Jul 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

2 participants