From a6ce8e3e8bde074d595945517f688129c574f049 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Sat, 24 Feb 2024 00:06:49 -0500 Subject: [PATCH] Also build a c9s toolbox container That one will only contain buildroot deps and is not intended to be the primary pet toolbox container. --- .github/workflows/build.yml | 35 +++++++++++++++++++++++++++++++---- Containerfile.buildroot | 6 ++++++ build | 3 ++- build-buildroot | 30 ++++++++++++++++++++++++++++++ deps-pet.txt | 17 +++++++++++++++++ deps.txt | 16 ---------------- rhsetup | 12 +++++++----- 7 files changed, 93 insertions(+), 26 deletions(-) create mode 100644 Containerfile.buildroot create mode 100755 build-buildroot create mode 100644 deps-pet.txt diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 12a9803..c7e0353 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,8 @@ name: Build env: QUAY_BASE: quay.io/jlebon/pet - TOOLBOX: registry.fedoraproject.org/fedora-toolbox + FEDORA_TOOLBOX: registry.fedoraproject.org/fedora-toolbox + CENTOS_TOOLBOX: quay.io/toolbx-images/centos-toolbox on: push: @@ -31,8 +32,8 @@ jobs: cosa=$(curl -L https://raw.githubusercontent.com/coreos/coreos-assembler/main/Dockerfile | grep '^FROM ' | cut -f2 -d:) echo "cosa=$cosa" >> $GITHUB_OUTPUT echo "matrix=$(seq $stable $rawhide | jq -cnR '[inputs]')" >> $GITHUB_OUTPUT - build: - name: "Build container image" + build-fedora: + name: "Build Fedora container images" needs: query runs-on: ubuntu-latest strategy: @@ -48,7 +49,7 @@ jobs: run: | set -xeuo pipefail n=${{ matrix.releasever }} - podman build --from $TOOLBOX:$n -t "${{ env.QUAY_BASE }}:f$n" . + podman build --from $FEDORA_TOOLBOX:$n -t "${{ env.QUAY_BASE }}:f$n" . - name: Push run: | set -xeuo pipefail @@ -81,3 +82,29 @@ jobs: fi git commit -m "README.md: update build date" git push + build-centos: + name: "Build CentOS container images" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tag: [stream9] + steps: + - name: Free Disk Space (Ubuntu) + uses: jlumbroso/free-disk-space@v1.3.0 + - name: Check out repository + uses: actions/checkout@v3 + - name: Build + run: | + set -xeuo pipefail + podman build --from $CENTOS_TOOLBOX:${{ matrix.tag }} -t "${{ env.QUAY_BASE }}:${{ matrix.tag }}" -f Containerfile.buildroot + - name: Push + run: | + set -xeuo pipefail + mkdir -p ~/.docker + cat > ~/.docker/config.json < +COPY . /pet +RUN cd /pet && ./build-buildroot && rm -rf /pet +CMD ["/bin/bash"] diff --git a/build b/build index e154234..69aef1a 100755 --- a/build +++ b/build @@ -36,10 +36,11 @@ fi # everything in the FCOS buildroot image (git clone https://github.com/coreos/fedora-coreos-config cd fedora-coreos-config + sed -i -e '/updates-testing/ d' ci/buildroot/install-buildroot.sh ci/buildroot/install-buildroot.sh) # install our packages -grep -v '^#' deps.txt | xargs dnf install -y +grep -v '^#' deps.txt deps-pet.txt | xargs dnf install -y # we want the host srv rmdir /srv && ln -sT /run/host/srv /srv diff --git a/build-buildroot b/build-buildroot new file mode 100755 index 0000000..85162fb --- /dev/null +++ b/build-buildroot @@ -0,0 +1,30 @@ +#!/bin/bash +set -euo pipefail + +dnf config-manager --set-enabled crb +dnf install -y epel-release epel-next-release +dnf install -y centpkg + +# rpm-ostree test deps +(git clone https://github.com/coreos/rpm-ostree + cd rpm-ostree + ci/install-test-deps.sh) + +# everything in the FCOS buildroot image +(git clone https://github.com/coreos/fedora-coreos-config + cd fedora-coreos-config + sed -i -e '/updates-testing/ d' ci/buildroot/install-buildroot.sh + ci/buildroot/install-buildroot.sh) + +# but then also redo this because the deps are slightly different when actually +# building RPMs +sudo dnf builddep -y rpm-ostree + +# install our packages +grep -v '^#' deps.txt | xargs dnf install -y + +# we want the host srv +rmdir /srv && ln -sT /run/host/srv /srv + +# install rhsetup +cp rhsetup /usr/bin diff --git a/deps-pet.txt b/deps-pet.txt new file mode 100644 index 0000000..0c29c4c --- /dev/null +++ b/deps-pet.txt @@ -0,0 +1,17 @@ +mosh + +fedpkg + +# for decrypting GPG files +pinentry + +# for YubiKey +yubikey-manager + +# language servers for helix +python-lsp-server +nodejs-bash-language-server +# already pulled in via buildroot deps, but for completeness +clang-tools-extra +# for generating clangd's `compile_commands.json` +bear diff --git a/deps.txt b/deps.txt index e8c8442..0a68187 100644 --- a/deps.txt +++ b/deps.txt @@ -1,11 +1,9 @@ tmux -mosh wl-clipboard # provides /usr/bin/errno moreutils -fedpkg python3-ipython gdb fzf @@ -13,19 +11,5 @@ ripgrep bat mold -# for decrypting GPG files -pinentry - -# for YubiKey -yubikey-manager - git-delta ShellCheck - -# language servers for helix -python-lsp-server -nodejs-bash-language-server -# already pulled in via buildroot deps, but for completeness -clang-tools-extra -# for generating clangd's `compile_commands.json` -bear diff --git a/rhsetup b/rhsetup index 08759ef..3e613e8 100755 --- a/rhsetup +++ b/rhsetup @@ -8,11 +8,13 @@ cd /etc/pki/ca-trust/source/anchors sudo curl -O https://certs.corp.redhat.com/certs/Current-IT-Root-CAs.pem sudo update-ca-trust extract -cd /etc/yum.repos.d/ -sudo curl -L -O https://download.devel.redhat.com/rel-eng/RCMTOOLS/rcm-tools-fedora.repo -# https://docs.engineering.redhat.com/display/RCMDOC/RCM+Tools+Release+Guide?focusedCommentId=339593129#comment-339593129 -sudo sed -i -e 's,$basearch,x86_64,' /etc/yum.repos.d/rcm-tools-fedora.repo -sudo dnf install -y rhel-packager +if [ "${ID}" = fedora ]; then + cd /etc/yum.repos.d/ + sudo curl -L -O https://download.devel.redhat.com/rel-eng/RCMTOOLS/rcm-tools-fedora.repo + # https://docs.engineering.redhat.com/display/RCMDOC/RCM+Tools+Release+Guide?focusedCommentId=339593129#comment-339593129 + sudo sed -i -e 's,$basearch,x86_64,' /etc/yum.repos.d/rcm-tools-fedora.repo + sudo dnf install -y rhel-packager +fi if [ -e /run/host/etc/krb5.conf.d/redhat ]; then sudo ln -s /run/host/etc/krb5.conf.d/redhat /etc/krb5.conf.d/