diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index e02d366..fcfb487 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -69,26 +69,30 @@ jobs: sudo apt-get update sudo apt-get install qemu-system-x86 - - name: End-to-End Testing [Install one Ubuntu kernel] + - name: End-to-End Testing [Install one Ubuntu 18.04 kernel] run: | sudo ./out-of-tree --log-level=debug kernel install --distro=Ubuntu --ver=18.04 --kernel=4.15.0-70-generic - - name: End-to-End Testing [Reinstall one Ubuntu kernel] + - name: End-to-End Testing [Reinstall one Ubuntu 18.04 kernel] run: | sudo ./out-of-tree --log-level=debug kernel install --distro=Ubuntu --ver=18.04 --kernel=4.15.0-70-generic --force - - name: End-to-End Testing [Install one Ubuntu kernel w/o headers] + - name: End-to-End Testing [Install one Ubuntu 22.04 kernel w/o headers] run: | sudo ./out-of-tree --log-level=debug kernel install --distro=Ubuntu --ver=22.04 --kernel=5.19.0-28-generic --no-headers - - name: End-to-End Testing [Install one CentOS kernel] + - name: End-to-End Testing [Install one CentOS 7 kernel] run: | sudo ./out-of-tree --log-level=debug kernel install --distro=CentOS --ver=7 --kernel=3.10.0-862.6.3 - - name: End-to-End Testing [Install one CentOS kernel w/o headers] + - name: End-to-End Testing [Install one CentOS 7 kernel w/o headers] run: | sudo ./out-of-tree --log-level=debug kernel install --distro=CentOS --ver=7 --kernel=3.10.0-1160.71.1 --no-headers + - name: End-to-End Testing [Install one CentOS 8 kernel] + run: | + sudo ./out-of-tree --log-level=debug kernel install --distro=CentOS --ver=8 --kernel=4.18.0-348.7.1 + test-end-to-end-genall: name: End-to-End Testing (genall) runs-on: ubuntu-latest diff --git a/kernel.go b/kernel.go index 0f409c5..2a2eb97 100644 --- a/kernel.go +++ b/kernel.go @@ -318,6 +318,15 @@ func generateBaseDockerImage(registry string, commands []config.DockerCommand, log.Print("See also https://lwn.net/Articles/446528/") err = fmt.Errorf("vsyscall is not available") return + } else if sk.DistroRelease == "8" { + // CentOS 8 doesn't have Vault repos by default + for _, repover := range []string{ + "8.0.1905", "8.1.1911", "8.2.2004", "8.3.2011", "8.4.2105", "8.5.2111", + } { + repo := fmt.Sprintf("[%s]\\nbaseurl=http://vault.centos.org/%s/BaseOS/$basearch/os/\\ngpgcheck=0", repover, repover) + d += fmt.Sprintf("RUN echo -e '%s' >> /etc/yum.repos.d/CentOS-Vault.repo\n", repo) + } + d += "RUN sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/*\n" } // enable rpms from old minor releases @@ -326,21 +335,12 @@ func generateBaseDockerImage(registry string, commands []config.DockerCommand, d += "RUN sed -i 's;installonly_limit=;installonly_limit=100500;' /etc/yum.conf\n" d += "RUN yum -y update\n" - if sk.DistroRelease == "8" { - // FIXME CentOS Vault repository list for 8 is empty - // at the time of this fix; check for it and use a - // workaround if it's still empty - d += `RUN grep enabled /etc/yum.repos.d/CentOS-Vault.repo` + - ` || echo -e '[8.0.1905]\nbaseurl=http://vault.centos.org/8.0.1905/BaseOS/$basearch/os/'` + - ` >> /etc/yum.repos.d/CentOS-Vault.repo` + "\n" - } - d += "RUN yum -y groupinstall 'Development Tools'\n" if sk.DistroRelease < "8" { d += "RUN yum -y install deltarpm\n" } else { - d += "RUN yum -y install drpm grub2-tools-minimal " + + d += "RUN yum -y install grub2-tools-minimal " + "elfutils-libelf-devel\n" } default: