astroband/ruby-stellar-sdk

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: CI

on:
  pull_request:
    paths-ignore: [ '**/README.md', '**/CHANGELOG.md' ]
  push:
    paths-ignore: [ '**/README.md', '**/CHANGELOG.md' ]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        ruby: ['3.3', '3.2', '3.1', '3.0', '2.7', jruby, truffleruby, debug]
    continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' }}
    steps:
    - uses: actions/checkout@v4
    - run: rm Gemfile.lock
    - name: Setup Ruby ${{ matrix.ruby }}
      uses: ruby/setup-ruby@v1
      with:
        ruby-version: ${{ matrix.ruby }}
        rubygems: latest
        bundler-cache: true
    - name: Run specs
      run: bin/rake test

  coverage:
    runs-on: ubuntu-latest
    env:
      CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
    steps:
    - uses: actions/checkout@v4
    - uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true
    - name: Generate coverage
      run: bin/rake test:coverage
    - name: Upload code coverage report to Coveralls
      uses: coverallsapp/github-action@v2
      with:
        file: coverage/lcov.info
        debug: true
      if: success()
      continue-on-error: true
    - name: Upload code coverage report to Coveralls Beta
      uses: coverallsapp/github-action@v2
      with:
        file: coverage/lcov.info
        coveralls-endpoint: https://beta.coveralls.io
        debug: true
      if: success()
      continue-on-error: true
    - name: Upload coverage to Codecov
      uses: codecov/codecov-action@v4
      with:
        token: ${{ secrets.CODECOV_TOKEN }}
        files: coverage/lcov.info
        verbose: true
      if: success()
      continue-on-error: true
    - name: Upload code coverage data to CodeClimate
      uses: paambaati/codeclimate-action@v9
      with:
        coverageLocations: coverage/coverage.json:simplecov
        debug: true
      if: success()
      continue-on-error: true
    - name: Upload code coverage data to Codacy
      uses: codacy/codacy-coverage-reporter-action@v1
      with:
        project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
        coverage-reports: coverage/lcov.info
      if: success()
      continue-on-error: true
  lint:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: ruby/setup-ruby@v1
      with:
        bundler-cache: true
    - name: Enforce codestyle with `standard`
      run: bin/rake lint:code
    - name: Check Yard syntax with `yard-junk`
      run: bin/rake lint:docs
    - name: Check for vulnerable dependencies with `bundle-audit`
      run: bin/rake lint:deps

  docs:
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
    - uses: actions/checkout@v4
    - name: Check markdown files for broken links
      uses: justinbeckwith/linkinator-action@v1
      with:
        paths: '*.md, base/**/*.md, sdk/**/*.md'
        verbosity: 'INFO'
        skip: 'vendor/, astroband/ruby-stellar-sdk/compare'