qusal/.pre-commit-config.yaml
Ben Grande fc22726ee8
feat: build and sign RPM packages
Passing files to Dom0 is always dangerous:

- Passing a git repository is dangerous as it can have ignored modified
  files and signature verification will pass.
- Passing an archive is troublesome for updates.
- Passing an RPM package depends on the RPM verification to be correct,
  some times it is not.
- Passing a RPM repository definition is less troublesome for the user,
  as it is a small file to verify the contents and update mechanism is
  via the package manager. Trust in RPM verification is still required.

Many improvements were made to the build scripts:

- requires-program: Single function to check if program is installed;
- spec-get: Sort project names for the usage message;
- spec-get: Only running commands that are necessary;
- spec-get: Fix empty summary when readme has copyright header;
- spec-gen: Fix grep warning of escaped symbol;
- spec-build: Sign RPM and verify signature;
- spec-build: Only lint the first SPEC for faster runtime;
- yumrepo-gen: Generate a local yum repository with signed metadata;
- qubesbuilder-gen: Generate a .qubesbuilder based on tracked projects;
- release: Build, sign and push all RPMs to repository.

Goal is to be able to build with qubes-builderv2 Qubes Executor.

For: https://github.com/ben-grande/qusal/issues/37
2024-06-12 14:44:04 +02:00

52 lines
1.3 KiB
YAML

# SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
---
repos:
- repo: local
hooks:
- id: unicode-prohibit
name: unicode-prohibit
entry: scripts/unicode-prohibit.sh
language: script
pass_filenames: true
description: Prohibit Unicode
- id: reuse
name: reuse
entry: reuse
args: [lint]
language: python
pass_filenames: false
description: Lint files to comply with the REUSE Specification
- id: salt-lint
name: salt-lint
entry: scripts/salt-lint.sh
language: script
pass_filenames: true
description: Lint Salt files
- id: shellcheck
name: shellcheck
entry: scripts/shell-lint.sh
language: script
pass_filenames: true
description: Lint Shellscripts
- id: gitlint
name: gitlint
language: python
entry: gitlint
args: [--staged, --msg-filename]
stages: [commit-msg]
description: Lint Git commits
- id: qubesbuilder
name: qubesbuilder
entry: scripts/qubesbuilder-gen.sh test
language: script
description: Check if .qubesbuilder is up to date