Sign inSign up

essentialkaos/perfecto

By essentialkaos

Updated about 3 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

ChecksInstallingUsing with Github ActionsUsing with DockerUsageBuild StatusLicense


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:97d853f85

Size

171.8 MB

Last updated

4 days ago

docker pull essentialkaos/perfecto