infertux/bashcov

View on GitHub
.github/workflows/ci.yml

Summary

Maintainability
Test Coverage
name: Run Bashcov CI

on:
  push:
  pull_request:

jobs:
  audit:
    runs-on: ubuntu-latest
    container: ruby:latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
      - name: Run Bundle audit
        id: bundle-audit
        run: |
          bundle exec rake bundle:audit:update
          bundle exec rake bundle:audit:check
  build:
    runs-on: ubuntu-latest
    container: ruby:latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
      - name: Build Bashcov
        id: build-bashcov
        run: |
          bundle exec rake build
          bundle exec rake build:checksum
          cat checksums/*
  cucumber:
    runs-on: ubuntu-latest
    container: ruby:latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
      - name: Run Cucumber scenarios
        id: cucumber-scenarios
        run: bundle exec rake cucumber
  spec:
    runs-on: ubuntu-latest
    container: ruby:latest
    strategy:
      matrix:
        bash-version:
        - '5.2'
        - '5.1'
        - '5.0'
        - '4.4'
        - '4.3'
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
        with:
          bash-version: ${{ matrix.bash-version }}
      - name: Run RSpec tests against Bash ${{ matrix.bash-version }}
        run: |
          bundle exec rake spec
  rubocop:
    runs-on: ubuntu-latest
    container: ruby:latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
      - name: Lint with RuboCop
        id: rubocop
        run: |
          bundle exec rake rubocop
  yard:
    runs-on: ubuntu-latest
    container: ruby:latest
    steps:
      - uses: actions/checkout@v4
      - uses: ./.github/actions/set-up-bashcov
      - name: Generate documentation with YARD
        id: yard
        run: |
          bundle exec yard stats --list-undoc
  nix:
    runs-on: ubuntu-latest
    # Don't fail the build if this job fails
    continue-on-error: true
    steps:
      - uses: actions/checkout@v4
      - uses: cachix/install-nix-action@v22
        with:
          extra_nix_config: |
            system-features = benchmark big-parallel kvm nixos-test uid-range
      - name: run flake checks
        run: nix flake check -L