Sign inSign up

essentialkaos/perfecto

By essentialkaos

•Updated about 19 hours ago

Tool for checking perfectly written RPM specs

Image
Developer tools
2

10K+

essentialkaos/perfecto repository overview

GoReportCard Codebeat badge GitHub Actions CI Status GitHub Actions CodeQL Status Coverage Status

Checks⁠ • Installing⁠ • Using with Github Actions⁠ • Using with Docker⁠ • Usage⁠ • Build Status⁠ • License⁠


perfecto is tool for checking perfectly written RPM specs. Currently, perfecto used by default for checking specs for EK Public Repository⁠.

Screenshot

Screenshot

⁠Checks

You can find additional information about every perfecto check in project wiki⁠.

⁠Installing
⁠From sources

Make sure you have a working Go 1.17+ workspace (instructions⁠), then:

go install github.com/essentialkaos/perfecto@latest
⁠From ESSENTIAL KAOS Public Repository⁠
sudo yum install -y https://yum.kaos.st/get/$(uname -r).rpm
sudo yum install perfecto
⁠Prebuilt binaries

You can download prebuilt binaries for Linux and macOS from EK Apps Repository⁠:

bash <(curl -fsSL https://apps.kaos.st/get) perfecto
⁠Using with Github Actions

For using latest stable version perfecto with Github Actions use this perfecto.yml file or add it to your workflow:

name: Perfecto

on:
  push:
    branches: [master, develop]
  pull_request:
    branches: [master]

jobs:
  Perfecto:
    name: Perfecto
    runs-on: ubuntu-latest

    steps:
      - name: Code checkout
        uses: actions/checkout@v2

      - name: Login to DockerHub
        uses: docker/login-action@v1
        env:
          DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
        if: ${{ env.DOCKERHUB_USERNAME != '' }}
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Check specs with Perfecto
        uses: essentialkaos/perfecto-action@v1
        with:
          files: myapp.spec

Additional information about action configuration can be found on the official GitHub action page⁠.

⁠Using with Docker

Install latest version of Docker, then:

curl -fL# -o perfecto-docker https://kaos.sh/perfecto/perfecto-docker
chmod +x perfecto-docker
sudo mv perfecto-docker /usr/bin/
perfecto-docker PATH_TO_YOUR_SPEC_HERE
⁠Usage
Usage: perfecto {options} file…

Options

  --absolve, -A id…          Disable some checks by their ID
  --format, -f format        Output format (summary|tiny|short|github|json|xml)
  --lint-config, -c file     Path to RPMLint configuration file
  --error-level, -e level    Return non-zero exit code if alert level greater than given (notice|warning|error|critical)
  --quiet, -q                Suppress all normal output
  --no-lint, -nl             Disable RPMLint checks
  --no-color, -nc            Disable colors in output
  --help, -h                 Show this help message
  --version, -v              Show version

Examples

  perfecto app.spec
  Check spec and print extended report

  perfecto --no-lint app.spec
  Check spec without rpmlint and print extended report

  perfecto --format tiny app.spec
  Check spec and print tiny report

  perfecto --format summary app.spec
  Check spec and print summary

  perfecto --format json app.spec 1> report.json
  Check spec, generate report in JSON format and save as report.json
⁠Build Status
BranchStatus
masterCI
developCI
⁠License

Apache License, Version 2.0⁠

Tag summary

Content type

Image

Digest

sha256:aee0427cd…

Size

188.6 MB

Last updated

6 days ago

docker pull essentialkaos/perfecto