Add length validations for user-supplied string attributes #6821
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
permissions: | |
contents: read | |
jobs: | |
# This is umbrella job for all tests needed to pass to make it simpler | |
# to maintain GitHub Actions status required checks since job names and | |
# amount change over the time and it is easier to maintian having just | |
# this umbrella check set as required. | |
status_check: | |
name: All required tests passing check | |
needs: [rails] | |
runs-on: ubuntu-24.04 | |
if: always() | |
steps: | |
- run: /bin/${{ (needs.rails.result == 'success' || needs.rails.result == 'skipped') }} | |
rails: | |
strategy: | |
fail-fast: false | |
matrix: | |
rubygems: | |
- name: locked | |
version: "3.5.19" | |
- name: latest | |
version: latest | |
ruby_version: ["3.3.5"] | |
tests: | |
- name: general | |
command: test | |
- name: system | |
command: test:system | |
name: Rails tests ${{ matrix.tests.name }} (RubyGems ${{ matrix.rubygems.name }}, Ruby ${{ matrix.ruby_version }}) | |
runs-on: ubuntu-22.04 | |
env: | |
RUBYGEMS_VERSION: ${{ matrix.rubygems.version }} | |
# Fail hard when Toxiproxy is not running to ensure all tests (even Toxiproxy optional ones) are passing | |
REQUIRE_TOXIPROXY: true | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- name: Setup rubygems.org | |
uses: ./.github/actions/setup-rubygems.org | |
with: | |
ruby-version: ${{ matrix.ruby_version }} | |
rubygems-version: ${{ matrix.rubygems.version }} | |
- name: Tests ${{ matrix.tests.name }} | |
id: test-all | |
run: bin/rails ${{ matrix.tests.command }} | |
- name: Save capybara screenshots | |
if: ${{ failure() && steps.test-all.outcome == 'failure' }} | |
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 | |
with: | |
name: capybara-screenshots-${{ matrix.tests.name }}-${{ matrix.rubygems.name }} | |
path: tmp/capybara | |
if-no-files-found: ignore | |
- name: Upload coverage to Codecov | |
if: matrix.rubygems.name == 'locked' && (success() || failure()) | |
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4.5.0 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |