Checks • Installing • 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.
You can find additional information about every perfecto check in project wiki.
Make sure you have a working Go 1.19+ workspace (instructions), then:
go install github.com/essentialkaos/perfecto@latest
sudo yum install -y https://pkgs.kaos.st/kaos-repo-latest.el$(grep 'CPE_NAME' /etc/os-release | tr -d '"' | cut -d':' -f5).noarch.rpm
# EL7 (OracleLinux/CentOS 7)
sudo yum install perfecto
# EL8 (OracleLinux/Alma/Rocky 8)
sudo dnf install perfecto
# Alma/Rocky 9
sudo dnf --enablerepo=crb install perfecto
# OracleLinux 9
sudo dnf --enablerepo=ol9_codeready_builder install perfecto
You can download prebuilt binaries for Linux and macOS from EK Apps Repository:
bash <(curl -fsSL https://apps.kaos.st/get) perfecto
Official perfecto images available on GitHub Container Registry and Docker Hub. Install the latest version of Podman or Docker, then:
curl -#L -o perfecto-container https://kaos.sh/perfecto/perfecto-container
chmod +x perfecto-container
sudo mv perfecto-container /usr/bin/perfecto
perfecto your.spec
Official container images with perfecto:
ghcr.io/essentialkaos/perfecto:micro
ghcr.io/essentialkaos/perfecto:ol7
ghcr.io/essentialkaos/perfecto:ol8
ghcr.io/essentialkaos/perfecto:ol9
essentialkaos/perfecto:micro
essentialkaos/perfecto:ol7
essentialkaos/perfecto:ol8
essentialkaos/perfecto:ol9
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@v3
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_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.
Usage: perfecto {options} spec…
Options
--ignore, -I id… Disable one or more 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 --ignore PF2,PF12 app.spec
Check spec without PF2 and PF12 checks
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
Branch | Status |
---|---|
master |
|
develop |