summaryrefslogtreecommitdiffstats
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/CODEOWNERS3
-rw-r--r--.github/labeler.yml485
-rw-r--r--.github/workflows/codeql.yml18
-rw-r--r--.github/workflows/container.yml73
-rw-r--r--.github/workflows/integration.yml197
-rw-r--r--.github/workflows/lint.yml38
-rw-r--r--.github/workflows/manualtest.yml50
-rw-r--r--.github/workflows/pr.yml9
-rw-r--r--.github/workflows/release.yml9
9 files changed, 689 insertions, 193 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e4362b2..7fbdd47 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -5,5 +5,4 @@
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
-* @haraldh @danimo @johannbg
-
+* @laszlogombos @Conan-Kudo
diff --git a/.github/labeler.yml b/.github/labeler.yml
index ba47d04..00142bc 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -1,292 +1,555 @@
repository:
- - ./*
+ - changed-files:
+ - any-glob-to-any-file: './*'
github:
- - .github/*
- - .github/**/*
+ - changed-files:
+ - any-glob-to-any-file: ['.github/*', '.github/**/*']
+
+docs:
+ - changed-files:
+ - any-glob-to-any-file: 'docs/*'
+
+man:
+ - changed-files:
+ - any-glob-to-any-file: 'man/*'
+
+kernel-install:
+ - changed-files:
+ - any-glob-to-any-file: 'install.d/*'
+
+shell-completion:
+ - changed-files:
+ - any-glob-to-any-file: ['shell-completion/*', 'shell-completion/**/*']
+
+dracut-cpio:
+ - changed-files:
+ - any-glob-to-any-file: ['src/dracut-cpio/*', 'src/dracut-cpio/**/*']
dracut-install:
- - install/*
- - install/**/*
+ - changed-files:
+ - any-glob-to-any-file: 'src/install/*'
+
+dracut-util:
+ - changed-files:
+ - any-glob-to-any-file: 'src/util/*'
+
+logtee:
+ - changed-files:
+ - any-glob-to-any-file: 'src/logtee/*'
-example:
- - examples/*
- - examples/**/*
- - examples/**/**/*
+skipcpio:
+ - changed-files:
+ - any-glob-to-any-file: 'src/skipcpio/*'
modules:
- - modules.d/*
- - modules.d/**/*
+ - changed-files:
+ - any-glob-to-any-file: ['modules.d/*', 'modules.d/**/*']
bash:
- - modules.d/00bash/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00bash/*'
dash:
- - modules.d/00dash/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00dash/*'
mksh:
- - modules.d/00mksh/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00mksh/*'
systemd:
- - modules.d/00systemd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00systemd/*'
warpclock:
- - modules.d/00warpclock/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00warpclock/*'
fips:
- - modules.d/01fips/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01fips/*'
+
+systemd-ac-power:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-ac-power/*'
+
+systemd-ask-password:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-ask-password/*'
+
+systemd-bsod:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-bsod/*'
+
+systemd-coredump:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-coredump/*'
+
+systemd-creds:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-creds/*'
+
+systemd-hostnamed:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-hostnamed/*'
systemd-initrd:
- - modules.d/01systemd-initrd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-initrd/*'
-caps:
- - modules.d/02caps/*
+systemd-integritysetup:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-integritysetup/*'
+
+systemd-journald:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-journald/*'
+
+systemd-ldconfig:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-ldconfig/*'
+
+systemd-modules-load:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-modules-load/*'
systemd-networkd:
- - modules.d/02systemd-networkd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-networkd/*'
+
+systemd-network-management:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/00systemd-network-management/*'
+
+systemd-pcrphase:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-pcrphase/*'
+
+systemd-portabled:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-portabled/*'
+
+systemd-pstore:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-pstore/*'
+
+systemd-repart:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-repart/*'
+
+systemd-resolved:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-resolved/*'
+
+systemd-sysctl:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-sysctl/*'
+
+systemd-sysext:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-sysext/*'
+
+systemd-sysusers:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-sysusers/*'
+
+systemd-timedated:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-timedated/*'
+
+systemd-timesyncd:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-timesyncd/*'
+
+systemd-tmpfiles:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-tmpfiles/*'
+
+systemd-udevd:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-udevd/*'
+
+systemd-veritysetup:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/01systemd-veritysetup/*'
+
+caps:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/02caps/*'
modsign:
- - modules.d/03modsign/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/03modsign/*'
rescue:
- - modules.d/03rescue/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/03rescue/*'
watchdog:
- - modules.d/04watchdog/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/04watchdog/*'
+
+watchdog-modules:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/04watchdog-modules/*'
busybox:
- - modules.d/05busybox/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/05busybox/*'
+
+dbus-broker:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/06dbus-broker/*'
+
+dbus-daemon:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/06dbus-daemon/*'
rngd:
- - modules.d/06rngd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/06rngd/*'
+
+dbus:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/09dbus/*'
i18n:
- - modules.d/10i18n/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/10i18n/*'
convertfs:
- - modules.d/30convertfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/30convertfs/*'
+
+connman:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/35connman/*'
network-legacy:
- - modules.d/35network-legacy/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/35network-legacy/*'
network-manager:
- - modules.d/35network-manager/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/35network-manager/*'
network:
- - modules.d/40network/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/40network/*'
ifcfg:
- - modules.d/45ifcfg/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/45ifcfg/*'
url-lib:
- - modules.d/45url-lib/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/45url-lib/*'
drm:
- - modules.d/50drm/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/50drm/*'
plymouth:
- - modules.d/50plymouth/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/50plymouth/*'
+
+bluetooth:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/62bluetooth/*'
cms:
- - modules.d/80cms/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/80cms/*'
lvmmerge:
- - modules.d/80lvmmerge/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/80lvmmerge/*'
+
+lvmthinpool-monitor:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/80lvmthinpool-monitor/*'
cio_ignore:
- - modules.d/81cio_ignore/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/81cio_ignore/*'
btrfs:
- - modules.d/90btrfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90btrfs/*'
crypt:
- - modules.d/90crypt/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90crypt/*'
dm:
- - modules.d/90dm/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90dm/*'
dmraid:
- - modules.d/90dmraid/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90dmraid/*'
dmsquash-live:
- - modules.d/90dmsquash-live/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90dmsquash-live/*'
+
+dmsquash-live-autooverlay:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90dmsquash-live-autooverlay/*'
dmsquash-live-ntfs:
- - modules.d/90dmsquash-live-ntfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90dmsquash-live-ntfs/*'
kernel-modules:
- - modules.d/90kernel-modules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90kernel-modules/*'
kernel-modules-extra:
- - modules.d/90kernel-modules-extra/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90kernel-modules-extra/*'
kernel-network-modules:
- - modules.d/90kernel-network-modules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90kernel-network-modules/*'
livenet:
- - modules.d/90livenet/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90livenet/*'
lvm:
- - modules.d/90lvm/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90lvm/*'
mdraid:
- - modules.d/90mdraid/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90mdraid/*'
multipath:
- - modules.d/90multipath/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90multipath/*'
+
+numlock:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90numlock/*'
nvdimm:
- - modules.d/90nvdimm/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90nvdimm/*'
overlayfs:
- - modules.d/90overlayfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90overlayfs/*'
ppcmac:
- - modules.d/90ppcmac/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90ppcmac/*'
qemu:
- - modules.d/90qemu/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90qemu/*'
qemu-net:
- - modules.d/90qemu-net/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90qemu-net/*'
+
+systemd-cryptsetup:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90systemd-cryptsetup/*'
crypt-gpg:
- - modules.d/91crypt-gpg/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91crypt-gpg/*'
crypt-loop:
- - modules.d/91crypt-loop/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91crypt-loop/*'
+
+fido2:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91fido2/*'
+
+pcsc:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91pcsc/*'
+
+pkcs11:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91pkcs11/*'
+
+tpm2-tss:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91tpm2-tss/*'
zipl:
- - modules.d/91zipl/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/91zipl/*'
cifs:
- - modules.d/95cifs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95cifs/*'
dasd:
- - modules.d/95dasd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95dasd/*'
dasd_mod:
- - modules.d/95dasd_mod/*
-
-dasd_rules:
- - modules.d/95dasd_rules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95dasd_mod/*'
dcssblk:
- - modules.d/95dcssblk/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95dcssblk/*'
debug:
- - modules.d/95debug/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95debug/*'
fcoe:
- - modules.d/95fcoe/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95fcoe/*'
fcoe-uefi:
- - modules.d/95fcoe-uefi/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95fcoe-uefi/*'
fstab-sys:
- - modules.d/95fstab-sys/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95fstab-sys/*'
iscsi:
- - modules.d/95iscsi/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95iscsi/*'
lunmask:
- - modules.d/95lunmask/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95lunmask/*'
nbd:
- - modules.d/95nbd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95nbd/*'
nfs:
- - modules.d/95nfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95nfs/*'
nvmf:
- - modules.d/95nvmf/*
-
-qeth_rules:
- - modules.d/95qeth_rules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95nvmf/*'
resume:
- - modules.d/95resume/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95resume/*'
rootfs-block:
- - modules.d/95rootfs-block/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95rootfs-block/*'
ssh-client:
- - modules.d/95ssh-client/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95ssh-client/*'
terminfo:
- - modules.d/95terminfo/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95terminfo/*'
udev-rules:
- - modules.d/95udev-rules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95udev-rules/*'
virtfs:
- - modules.d/95virtfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95virtfs/*'
virtiofs:
- - modules.d/95virtiofs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95virtiofs/*'
zfcp:
- - modules.d/95zfcp/*
-
-zfcp_rules:
- - modules.d/95zfcp_rules/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95zfcp/*'
znet:
- - modules.d/95znet/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/95znet/*'
securityfs:
- - modules.d/96securityfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/96securityfs/*'
biosdevname:
- - modules.d/97biosdevname/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/97biosdevname/*'
masterkey:
-- modules.d/97masterkey/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/97masterkey/*'
dracut-systemd:
- - modules.d/98dracut-systemd/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98dracut-systemd/*'
ecryptfs:
- - modules.d/98ecryptfs/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98ecryptfs/*'
integrity:
- - modules.d/98integrity/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98integrity/*'
pollcdrom:
- - modules.d/98pollcdrom/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98pollcdrom/*'
selinux:
- - modules.d/98selinux/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98selinux/*'
syslog:
- - modules.d/98syslog/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98syslog/*'
usrmount:
- - modules.d/98usrmount/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/98usrmount/*'
base:
- - modules.d/99base/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99base/*'
fs-lib:
- - modules.d/99fs-lib/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99fs-lib/*'
img-lib:
- - modules.d/99img-lib/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99img-lib/*'
memstrack:
- - modules.d/99memstrack/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99memstrack/*'
shutdown:
- - modules.d/99shutdown/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99shutdown/*'
squash:
- - modules.d/99squash/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99squash/*'
uefi-lib:
- - modules.d/99uefi-lib/*
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/99uefi-lib/*'
+
+net-lib:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/45net-lib/*'
+
+pcmcia:
+ - changed-files:
+ - any-glob-to-any-file: 'modules.d/90pcmcia/*'
test:
- - test/*
- - test/**/*
- - modules.d/80test*
- - modules.d/80test*/*
+ - changed-files:
+ - any-glob-to-any-file: ['test/*', 'test/**/*', 'modules.d/80test*', 'modules.d/80test*/*']
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index e6f8e42..9839ad0 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -7,10 +7,14 @@ name: "CodeQL"
on:
push:
branches:
- - master
+ - main
+ paths:
+ - 'src/**'
pull_request:
branches:
- - master
+ - main
+ paths:
+ - 'src/**'
permissions:
contents: read
@@ -18,7 +22,7 @@ permissions:
jobs:
analyze:
name: Analyze
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ matrix.language }}-${{ github.ref }}
cancel-in-progress: true
@@ -33,10 +37,10 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Initialize CodeQL
- uses: github/codeql-action/init@v2
+ uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: +security-extended,security-and-quality
@@ -47,7 +51,7 @@ jobs:
sudo apt -y install asciidoc gcc libkmod-dev libsystemd-dev pkg-config
- name: Autobuild
- uses: github/codeql-action/autobuild@v2
+ uses: github/codeql-action/autobuild@v3
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v2
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/container.yml b/.github/workflows/container.yml
index d8c8808..666f887 100644
--- a/.github/workflows/container.yml
+++ b/.github/workflows/container.yml
@@ -3,12 +3,12 @@ on:
schedule:
- cron: '30 11 * * *' # every day at 11:30 UTC
push:
- branches: [ master ]
+ branches: [ main ]
paths:
- 'test/container/**'
- '.github/workflows/container.yml'
pull_request:
- branches: [ master ]
+ branches: [ main ]
paths:
- 'test/container/**'
- '.github/workflows/container.yml'
@@ -18,30 +18,68 @@ permissions:
contents: read
jobs:
- push_to_registry:
- if: github.repository == 'dracutdevs/dracut' || vars.CONTAINER == 'enabled'
- name: Build and push containers image to GitHub Packages
+ arm64:
+ if: github.repository == 'dracut-ng/dracut-ng' || vars.CONTAINER == 'enabled'
+ name: ${{ matrix.config.tag }} on ${{ matrix.config.platform }}
runs-on: ubuntu-latest
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.config.dockerfile }}
+ group: arm64-${{ github.workflow }}-${{ github.ref }}-${{ matrix.config.dockerfile }}
cancel-in-progress: true
strategy:
fail-fast: false
matrix:
config:
- - { dockerfile: 'Dockerfile-Fedora-latest', tag: 'fedora:latest' }
- - { dockerfile: 'Dockerfile-OpenSuse-latest', tag: 'opensuse:latest' }
- - { dockerfile: 'Dockerfile-Arch', tag: 'arch:latest' }
- - { dockerfile: 'Dockerfile-Debian', tag: 'debian:latest' }
- - { dockerfile: 'Dockerfile-Gentoo', tag: 'gentoo:latest' }
- - { dockerfile: 'Dockerfile-Ubuntu', tag: 'ubuntu:latest' }
+ - { dockerfile: 'Dockerfile-Debian', tag: 'debian', platform: 'linux/arm64,linux/amd64' }
+ - { dockerfile: 'Dockerfile-Fedora-latest', tag: 'fedora', platform: 'linux/arm64,linux/amd64' }
+ steps:
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
+ with:
+ platforms: ${{ matrix.config.platform }}
+ - name: Check out the repo
+ uses: actions/checkout@v4
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v3
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ - name: Set up env
+ run: echo "repository_owner=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
+ - name: Build and Push Container
+ uses: docker/build-push-action@v5
+ with:
+ file: test/container/${{ matrix.config.dockerfile }}
+ tags: ghcr.io/${{env.repository_owner}}/${{ matrix.config.tag }}:latest
+ push: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
+ platforms: ${{ matrix.config.platform }}
+
+ amd64:
+ if: github.repository == 'dracut-ng/dracut-ng' || vars.CONTAINER == 'enabled'
+ name: ${{ matrix.config.tag }} on ${{ matrix.config.platform }}
+ runs-on: ubuntu-latest
+ concurrency:
+ group: amd64-${{ github.workflow }}-${{ github.ref }}-${{ matrix.config.dockerfile }}
+ cancel-in-progress: true
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - { dockerfile: 'Dockerfile-OpenSuse-latest', tag: 'opensuse', platform: 'linux/amd64' }
+ - { dockerfile: 'Dockerfile-Arch', tag: 'arch', platform: 'linux/amd64' }
+ - { dockerfile: 'Dockerfile-Gentoo', tag: 'gentoo', platform: 'linux/amd64' }
+ - { dockerfile: 'Dockerfile-Ubuntu', tag: 'ubuntu', platform: 'linux/amd64' }
+ - { dockerfile: 'Dockerfile-alpine', tag: 'alpine', platform: 'linux/amd64' }
+ - { dockerfile: 'Dockerfile-Void', tag: 'void', platform: 'linux/amd64' }
steps:
- name: Check out the repo
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
@@ -49,8 +87,9 @@ jobs:
- name: Set up env
run: echo "repository_owner=${GITHUB_REPOSITORY_OWNER,,}" >>${GITHUB_ENV}
- name: Build and Push Container
- uses: docker/build-push-action@v4
+ uses: docker/build-push-action@v5
with:
file: test/container/${{ matrix.config.dockerfile }}
- tags: ghcr.io/${{env.repository_owner}}/${{ matrix.config.tag }}
+ tags: ghcr.io/${{env.repository_owner}}/${{ matrix.config.tag }}:latest
push: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
+ platforms: ${{ matrix.config.platform }}
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index ab075b0..6e323b7 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -2,30 +2,147 @@ name: Integration Test
on:
pull_request:
- branches: [ master ]
+ branches: [ main ]
env:
DEBUGFAIL: "${{ secrets.ACTIONS_STEP_DEBUG && 'rd.debug' }}"
jobs:
- test:
+ basic:
+ name: ${{ matrix.test }} on ${{ matrix.container }}
runs-on: ubuntu-latest
timeout-minutes: 30
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
+ group: basic-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
cancel-in-progress: true
strategy:
matrix:
container: [
- "arch:latest",
- "debian:latest",
- "fedora:latest",
- "gentoo:latest",
- "opensuse:latest",
- "ubuntu:latest",
+ "alpine",
+ "arch",
+ "debian",
+ "fedora",
+ "gentoo",
+ "opensuse",
+ "ubuntu",
+ "void",
]
test: [
"01",
+ ]
+ fail-fast: false
+ container:
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
+ options: "--privileged -v /dev:/dev"
+ steps:
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
+ - name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+ run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ network:
+ name: ${{ matrix.test }} on ${{ matrix.container }} using ${{ matrix.network }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ concurrency:
+ group: network-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}-${{ matrix.network }}
+ cancel-in-progress: true
+ strategy:
+ matrix:
+ container: [
+ "fedora",
+ ]
+ network: [
+ "network",
+ ]
+ test: [
+ "20",
+ "40",
+ "50",
+ "60",
+ ]
+ fail-fast: false
+ container:
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
+ options: "--privileged -v /dev:/dev"
+ steps:
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
+ - name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+ run: USE_NETWORK=${{ matrix.network }} ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ network-legacy:
+ name: ${{ matrix.test }} on ${{ matrix.container }} using ${{ matrix.network }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ concurrency:
+ group: network-legacy-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}-${{ matrix.network }}
+ cancel-in-progress: true
+ strategy:
+ matrix:
+ container: [
+ "opensuse",
+ ]
+ network: [
+ "network-legacy",
+ ]
+ test: [
+ "20",
+ "30",
+ "40",
+ ]
+ fail-fast: false
+ container:
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
+ options: "--privileged -v /dev:/dev"
+ steps:
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
+ - name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+ run: USE_NETWORK=${{ matrix.network }} ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ systemd-networkd:
+ name: ${{ matrix.test }} on ${{ matrix.container }} using ${{ matrix.network }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ concurrency:
+ group: systemd-networkd-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}-${{ matrix.network }}
+ cancel-in-progress: true
+ strategy:
+ matrix:
+ container: [
+ "arch",
+ ]
+ network: [
+ "systemd-networkd",
+ ]
+ test: [
+ "35",
+ "40",
+ ]
+ fail-fast: false
+ container:
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
+ options: "--privileged -v /dev:/dev"
+ steps:
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
+ - name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+ run: USE_NETWORK=${{ matrix.network }} ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ extended:
+ name: ${{ matrix.test }} on ${{ matrix.container }}
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ concurrency:
+ group: extended-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
+ cancel-in-progress: true
+ strategy:
+ matrix:
+ container: [
+ "arch",
+ "debian",
+ "fedora",
+ "gentoo",
+ "ubuntu",
+ ]
+ test: [
"02",
"03",
"04",
@@ -43,50 +160,60 @@ jobs:
]
fail-fast: false
container:
- image: ghcr.io/dracutdevs/${{ matrix.container }}
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
options: "--privileged -v /dev:/dev"
steps:
- name: "Checkout Repository"
- uses: actions/checkout@v1
- with:
- fetch-depth: 0
-
+ uses: actions/checkout@v4
- name: "${{ matrix.container }} TEST-${{ matrix.test }}"
run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
- network:
+ dracut-cpio:
+ name: ${{ matrix.test }} on ${{ matrix.container }}
runs-on: ubuntu-latest
- timeout-minutes: 45
+ timeout-minutes: 30
concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}-${{ matrix.network }}
+ group: dracut-cpio-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
cancel-in-progress: true
strategy:
matrix:
container: [
- "fedora:latest",
- ]
- network: [
- "network-manager",
- "network-legacy",
- #"systemd-networkd",
- #"connman",
+ "opensuse",
]
test: [
- "20",
- "30",
- "35",
- "40",
- "60",
- # "50", # times out
+ "63",
]
fail-fast: false
container:
- image: ghcr.io/dracutdevs/${{ matrix.container }}
+ image: ghcr.io/dracut-ng/${{ matrix.container }}
options: "--privileged -v /dev:/dev"
steps:
- name: "Checkout Repository"
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
+ - name: "${{ matrix.container }} TEST-${{ matrix.test }}"
+ run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ arm64:
+ name: ${{ matrix.test }} on ${{ matrix.container }} on arm64
+ runs-on: ubuntu-latest
+ timeout-minutes: 30
+ concurrency:
+ group: arm64-${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
+ cancel-in-progress: true
+ strategy:
+ matrix:
+ container: [
+ "debian",
+ "fedora",
+ ]
+ test: [
+ "98",
+ ]
+ fail-fast: false
+ steps:
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v3
with:
- fetch-depth: 0
-
+ platforms: 'linux/arm64'
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
- name: "${{ matrix.container }} TEST-${{ matrix.test }}"
- run: USE_NETWORK=${{ matrix.network }} ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
+ run: docker run --platform linux/arm64 --privileged -v /dev:/dev -v $PWD:/w ghcr.io/dracut-ng/${{ matrix.container }} /w/tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index d02b332..16dac6c 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -2,31 +2,53 @@ name: Lint
on:
push:
- branches: [ master ]
+ branches: [ main ]
pull_request:
- branches: [ master ]
+ branches: [ main ]
jobs:
lint-shell:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: shfmt
- uses: luizm/action-sh-checker@v0.6.0
+ uses: luizm/action-sh-checker@v0.8.0
env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SHFMT_OPTS: -s # arguments to shfmt.
with:
- sh_checker_shellcheck_disable: false
- sh_checker_comment: true
+ sh_checker_shellcheck_disable: true # disable shellcheck in favor of differential-shellcheck
+
+ differential-shellcheck:
+ runs-on: ubuntu-latest
+
+ permissions:
+ security-events: write
+
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - id: ShellCheck
+ name: Differential ShellCheck
+ uses: redhat-plumbers-in-action/differential-shellcheck@v5
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - if: ${{ always() }}
+ name: Upload artifact with ShellCheck defects in SARIF format
+ uses: actions/upload-artifact@v4
+ with:
+ name: Differential ShellCheck SARIF
+ path: ${{ steps.ShellCheck.outputs.sarif }}
lint-c:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: install tools
run: sudo apt-get install astyle
diff --git a/.github/workflows/manualtest.yml b/.github/workflows/manualtest.yml
index b790dcf..74e5647 100644
--- a/.github/workflows/manualtest.yml
+++ b/.github/workflows/manualtest.yml
@@ -5,34 +5,70 @@ on:
inputs:
test:
description: "Array of tests to run, such as [11,12]"
- default: "['04']"
- required: true
+ default: "[]"
container:
type: choice
description: 'distro'
- default: 'fedora'
+ default: 'all'
options:
+ - "all"
+ - "alpine"
- "fedora"
- "arch"
- "debian"
- "ubuntu"
- "opensuse"
- "gentoo"
+ - "void"
+ env:
+ description: 'Environment (optional)'
+ default: '{"DEBUGFAIL": "rd.debug"}'
+ registry:
+ description: 'Registry for containers, such as ghcr.io/dracut-ng'
+
+env:
+ ${{ fromJSON(inputs.env) }}
jobs:
+ matrix:
+ runs-on: ubuntu-latest
+ outputs:
+ registry: ${{ steps.set-matrix.outputs.registry }}
+ container: ${{ steps.set-matrix.outputs.container }}
+ tests: ${{ steps.set-matrix.outputs.tests }}
+ steps:
+ - name: "Checkout Repository"
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - id: set-matrix
+ name: "Set Matrix"
+ run: |
+ [[ "${{ inputs.registry }}" != '' ]] && echo "registry=\"${{ inputs.registry }}\"" >> $GITHUB_OUTPUT \
+ || ( echo "registry=\"ghcr.io/${{ github.repository_owner }}\"" >> $GITHUB_OUTPUT )
+ [[ "${{ inputs.container }}" != 'all' ]] && echo "container=[\"${{ inputs.container }}\"]" >> $GITHUB_OUTPUT \
+ || ( containers=$(find test/container -name "Dockerfile-*" | cut -d\- -f2 | tr '[:upper:]' '[:lower:]' | sed -z 's/\n/","/g'); echo "container=[\"${containers%??}]" >> $GITHUB_OUTPUT )
+ [[ "${{ toJson(fromJson(inputs.test)) }}" != '[]' ]] && echo "tests=${{ inputs.test }}" >> $GITHUB_OUTPUT \
+ || ( tests=$(find test -type d -a -name "TEST-*" | cut -d\- -f2 | sed -z 's/\n/","/g' ); echo "tests=[\"${tests%??}]" >> $GITHUB_OUTPUT )
test:
+ needs: matrix
runs-on: ubuntu-latest
timeout-minutes: 45
+ concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.container }}-${{ matrix.test }}
+ cancel-in-progress: true
strategy:
matrix:
- test: ${{ fromJSON(inputs.test) }}
+ container: ${{ fromJSON(needs.matrix.outputs.container) }}
+ test: ${{ fromJSON(needs.matrix.outputs.tests) }}
+ fail-fast: false
container:
- image: ghcr.io/dracutdevs/${{ inputs.container }}
+ image: ${{ fromJSON(needs.matrix.outputs.registry) }}/${{ matrix.container }}
options: "--privileged -v /dev:/dev"
steps:
- name: "Checkout Repository"
- uses: actions/checkout@v1
+ uses: actions/checkout@v4
with:
fetch-depth: 0
- - name: "${{ inputs.container }} ${{ matrix.test }}"
+ - name: "${{ matrix.container }} ${{ matrix.test }}"
run: ./tools/test-github.sh "TEST-${{ matrix.test }}" ${{ matrix.test }}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 60ca1db..1113af0 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -9,11 +9,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Check-out the repo under $GITHUB_WORKSPACE
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Run Commisery
- uses: dracutdevs/commisery-action@master
+ uses: tomtom-international/commisery-action@master
with:
token: ${{ secrets.GITHUB_TOKEN }}
- pull_request: ${{ github.event.number }}
-
+ # don't validate the pull request title
+ validate-pull-request: false
+ validate-pull-request-title-bump: false
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7497d6e..a12126e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -18,16 +18,21 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
fetch-depth: 0
+ - name: Install dependencies
+ run: |
+ sudo apt -y update
+ sudo apt -y install asciidoc
+
- name: Build
run: bash ${GITHUB_WORKSPACE}/tools/release.sh ${{ inputs.tag }}
- name: Release
if: ${{ env.new_version }}
- uses: softprops/action-gh-release@v0.1.15
+ uses: softprops/action-gh-release@v2.0.5
with:
tag_name: ${{ env.new_version }}
name: dracut-${{ env.new_version }}