Blob Blame History Raw
From b13e8ee2caaa84046e25a73e52dedb9c0f5c57a3 Mon Sep 17 00:00:00 2001
From: Pavel Valena <pvalena@redhat.com>
Date: Tue, 12 Jul 2022 14:12:04 +0200
Subject: [PATCH] ci: all layered RHEL-9 changes

 - previous downstream changes
 - use dracut.spec as submitted in the PR
 - sync selected changes from upstream
 - add new-main for pull-requests temporarily

rhel-only
Related: #2066816
---
 .github/workflows/container.yml               |  7 ++--
 .github/workflows/differential-shellcheck.yml | 19 ++++++++++
 .github/workflows/integration.yml             | 47 ++++++++++++++++++++++--
 .github/workflows/lint.yml                    |  4 +-
 .packit.yml                                   | 36 ++++++++++++++++++
 test/container/Dockerfile-CentOS-9-Stream     | 53 +++++++++++++++++++++++++++
 6 files changed, 158 insertions(+), 8 deletions(-)

diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml
index 03c9c5ec..99d57f5b 100644
--- a/.github/workflows/container.yml
+++ b/.github/workflows/container.yml
@@ -3,12 +3,12 @@ on:
     schedule:
         -  cron: '30 11 * * *'   # every day at 4:40
     push:
-        branches: [ master ]
+        branches: [ main ]
         paths:
             - 'test/container/**'
             - '.github/workflows/container.yml'
     pull_request:
-        branches: [ master ]
+        branches: [ main new-main ]
         paths:
             - 'test/container/**'
             - '.github/workflows/container.yml'
@@ -31,6 +31,7 @@ jobs:
                     - { dockerfile: 'Dockerfile-Fedora-latest',     tag: 'fedora:latest' }
                     - { dockerfile: 'Dockerfile-OpenSuse-latest',   tag: 'opensuse:latest' }
                     - { dockerfile: 'Dockerfile-Arch',              tag: 'arch:latest' }
+                    - { dockerfile: 'Dockerfile-CentOS-9-Stream',   tag: 'centos:stream9' }
                     - { dockerfile: 'Dockerfile-Debian',            tag: 'debian:latest' }
         steps:
             -   name: Check out the repo
@@ -49,5 +50,5 @@ jobs:
                 uses: docker/build-push-action@v2
                 with:
                     file: test/container/${{ matrix.config.dockerfile }}
-                    tags: ghcr.io/dracutdevs/${{ matrix.config.tag }}
+                    tags: ghcr.io/${{ github.repository_owner }}/${{ matrix.config.tag }}
                     push: ${{ github.event_name == 'push' ||  github.event_name == 'schedule' }}
diff --git a/.github/workflows/differential-shellcheck.yml b/.github/workflows/differential-shellcheck.yml
new file mode 100644
index 00000000..c4b05fad
--- /dev/null
+++ b/.github/workflows/differential-shellcheck.yml
@@ -0,0 +1,19 @@
+name: Differential ShellCheck
+on:
+  pull_request:
+    branches: [ main new-main ]
+
+jobs:
+  test:
+    runs-on: ubuntu-20.04
+
+    steps: 
+      - name: Repository checkout
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+
+      - name: Differential ShellCheck
+        uses: redhat-plumbers-in-action/differential-shellcheck@v2
+        with:
+          token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index 3d78555f..aa354e3e 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -2,7 +2,7 @@ name: Integration Test
 
 on:
     pull_request:
-        branches: [ master ]
+        branches: [ main new-main ]
 
 jobs:
     basic:
@@ -24,7 +24,7 @@ jobs:
                 ]
             fail-fast: false
         container:
-            image: ghcr.io/dracutdevs/${{ matrix.container }}
+            image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}
             options: "--privileged -v /dev:/dev"
         steps:
             -   name: "Checkout Repository"
@@ -69,7 +69,48 @@ jobs:
                 ]
             fail-fast: false
         container:
-            image: ghcr.io/dracutdevs/${{ matrix.container }}
+            image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}
+            options: "--privileged -v /dev:/dev"
+        steps:
+            -   name: "Checkout Repository"
+                uses: actions/checkout@v2
+                with:
+                    fetch-depth: 0
+
+            -   name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+                run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+    centos-9-stream:
+        runs-on: ubuntu-latest
+        timeout-minutes: 45
+        concurrency:
+            group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
+            cancel-in-progress: true
+        strategy:
+            matrix:
+                container: [
+                        "centos:stream9",
+                ]
+                # Disabled tests (due to dropped packages in RHEL/CentOS):
+                # 03, 04, 15: requires btrfs
+                # 14: requires dmraid
+                # 30, 31, 35, 36: requires scsi-target-utils
+                test: [
+                        "01",
+                        "02",
+                        "10",
+                        "11",
+                        "12",
+                        "13",
+                        "17",
+                        "20",
+                        "21",
+                        "40",
+                        "41",
+                        "98",
+                ]
+            fail-fast: false
+        container:
+            image: ghcr.io/${{ github.repository_owner }}/${{ matrix.container }}
             options: "--privileged -v /dev:/dev"
         steps:
             -   name: "Checkout Repository"
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 7b1b8ee7..5e3a299f 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -2,9 +2,9 @@ name: Lint
 
 on:
   push:
-    branches: [ master ]
+    branches: [ main ]
   pull_request:
-    branches: [ master ]
+    branches: [ main new-main ]
 
 jobs:
   lint-c:
diff --git a/.packit.yml b/.packit.yml
new file mode 100644
index 00000000..86ba83d2
--- /dev/null
+++ b/.packit.yml
@@ -0,0 +1,36 @@
+---
+# This file is part of dracut.
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# vi:ts=2 sw=2 et:
+#
+# Docs: https://packit.dev/docs/
+
+specfile_path: pkgbuild/dracut.spec
+synced_files:
+  - .packit.yaml
+upstream_package_name: dracut
+downstream_package_name: dracut
+upstream_tag_template: "{version}"
+
+actions:
+  post-upstream-clone:
+    # Use the current specfile
+    - "cp pkgbuild/dracut.spec ."
+
+# Available targets can be listed via `copr-cli list-chroots`
+jobs:
+# Build test
+- job: copr_build
+  trigger: pull_request
+  metadata:
+    targets:
+      - centos-stream-9-x86_64
+      - centos-stream-9-aarch64
+
+# Run tests (via testing farm)
+- job: tests
+  trigger: pull_request
+  metadata:
+    targets:
+      - centos-stream-9-x86_64
diff --git a/test/container/Dockerfile-CentOS-9-Stream b/test/container/Dockerfile-CentOS-9-Stream
new file mode 100644
index 00000000..c9a96020
--- /dev/null
+++ b/test/container/Dockerfile-CentOS-9-Stream
@@ -0,0 +1,53 @@
+FROM quay.io/centos/centos:stream9
+
+MAINTAINER https://github.com/dracutdevs/dracut
+
+ENV container docker
+LABEL RUN="docker run -it --name NAME --privileged --ipc=host --net=host --pid=host -e NAME=NAME -e IMAGE=IMAGE IMAGE"
+
+RUN echo 'export DRACUT_NO_XATTR=1 KVERSION=$(cd /lib/modules; ls -1 | tail -1)' > /etc/profile.d/dracut-test.sh
+
+# Install needed packages for the dracut CI container
+# FIXME: properly re-add dash once C9S EPEL is available
+RUN dnf -y install --enablerepo crb --setopt=install_weak_deps=False \
+    http://mirrors.kernel.org/fedora/releases/34/Everything/x86_64/os/Packages/d/dash-0.5.10.2-8.fc34.x86_64.rpm \
+    qemu-kvm \
+    NetworkManager \
+    asciidoc \
+    bash-completion \
+    bzip2 \
+    cryptsetup \
+    dbus-daemon \
+    dhcp-client \
+    dhcp-server \
+    e2fsprogs \
+    gcc \
+    git \
+    iproute \
+    iputils \
+    iscsi-initiator-utils \
+    kbd \
+    kernel \
+    kmod-devel \
+    lvm2 \
+    make \
+    mdadm \
+    nfs-utils \
+    pigz \
+    rpm-build \
+    strace \
+    sudo \
+    tar \
+    tcpdump \
+    wget \
+    which \
+    xz \
+    && dnf -y update && dnf clean all
+
+# C9S ships only qemu-kvm, but it disables the KVM accel when it's not
+# available
+RUN ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-kvm && \
+    ln -sv /usr/libexec/qemu-kvm /usr/bin/qemu-system-$(uname -m)
+
+# Set default command
+CMD ["/usr/bin/bash"]