Skip to content

CLOS-7051: CloudLinux 9 to CloudLinux 10 upgrade support #78

CLOS-7051: CloudLinux 9 to CloudLinux 10 upgrade support

CLOS-7051: CloudLinux 9 to CloudLinux 10 upgrade support #78

name: Lint (cloudlinux)
# CloudLinux fork uses the `cloudlinux` branch as trunk; the inherited
# upstream workflows (unit-tests.yml, codespell.yml, etc.) only fire on
# `master` and so do not run on this fork. This narrow workflow guards
# the cloudlinux branch against the most common regression we have hit:
# stray non-ASCII bytes in Python source (em-dashes, smart quotes,
# ellipsis from copy/paste, leftover BOMs).
#
# The checks are `make lint-non-ascii`, `make lint-spec-release` and
# `make lint-spec-platforms`, which delegate to utils/check-non-ascii.py,
# utils/check-spec-release.py and utils/check-spec-platforms.py. All three are
# also prerequisites of `make lint`, so local developers get the identical
# rules when they run the full lint locally.
#
# lint-spec-release guards the release number the spec declares. Upstream's
# Makefile stamped a computed release over it for COPR scratch builds, using
# an unanchored substring match that corrupted any release ending in 1 -
# 0.20.0-11 was built as 0.20.0-10.<timestamp>.<sha>.HEAD and discarded.
#
# lint-spec-platforms guards what upstream's builds differ from ours in. Every
# build copies its target's deps RPMs from the tarball `make source`
# assembles, and the 0.24.0 merge resolved the Makefile to bundle no el9 deps,
# which failed the CL8 build. It also rejects any file under the tree
# leapp-data-cloudlinux installs into (the CloudLinux target GPG keys): a
# second copy here made the two RPMs uninstallable together.
#
# The CloudLinux 7 to 8 upgrade is built from the cloudlinux-el7toel8 branch,
# so nothing here guards python2.7 or rpm 4.11 any more.
#
# Broader fixes (running the full upstream test+lint matrix on cloudlinux
# PRs) are tracked separately.
on:
pull_request:
branches: [cloudlinux]
push:
branches: [cloudlinux]
permissions:
contents: read
jobs:
lint-non-ascii:
name: Reject undeclared non-ASCII in Python source
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: make lint-non-ascii
run: make lint-non-ascii
lint-spec-release:
name: Build must ship the release the spec declares
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: make lint-spec-release
run: make lint-spec-release
lint-spec-platforms:
name: Every build's deps are bundled, nothing is shipped twice
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: make lint-spec-platforms
run: make lint-spec-platforms