From d747d3d31d091e9240a3f91573be893d1e1da969 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 11 Jul 2022 12:14:55 -0400 Subject: [PATCH 1/5] COPR version check: move preparation steps to container In order to make reproducibility better and the check faster, let's put the preparations steps for the package install (which is the check itself) in a proper container. The check then becomes simply the package installation. Signed-off-by: Cleber Rosa --- .../containers/ci/selftests/check-copr-rpm-version.docker | 7 +++++++ selftests/pre_release/tests/check-copr-rpm-version.sh | 7 +++---- 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 contrib/containers/ci/selftests/check-copr-rpm-version.docker diff --git a/contrib/containers/ci/selftests/check-copr-rpm-version.docker b/contrib/containers/ci/selftests/check-copr-rpm-version.docker new file mode 100644 index 0000000000..3085c9f8f2 --- /dev/null +++ b/contrib/containers/ci/selftests/check-copr-rpm-version.docker @@ -0,0 +1,7 @@ +# This container is used in selftests/pre_release/tests/check-copr-rpm-version.sh +FROM fedora:36 +LABEL description "Fedora image used on COPR RPM version check" +RUN dnf -y module disable avocado:latest +RUN dnf -y install 'dnf-command(copr)' +RUN dnf -y copr enable @avocado/avocado-latest +RUN dnf -y clean all diff --git a/selftests/pre_release/tests/check-copr-rpm-version.sh b/selftests/pre_release/tests/check-copr-rpm-version.sh index 191843e529..617bbfa6d0 100755 --- a/selftests/pre_release/tests/check-copr-rpm-version.sh +++ b/selftests/pre_release/tests/check-copr-rpm-version.sh @@ -12,12 +12,11 @@ VERSION=$(python setup.py --version 2>/dev/null) COMMIT_DATE=$(git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1) SHORT_COMMIT=$(git rev-parse --short=9 $ORIGIN/master) RPM_RELEASE_NUMBER=$(grep -E '^Release:\s([0-9]+)' python-avocado.spec | sed -E 's/Release:\s([0-9]+).*/\1/') -DISTRO=fedora -DISTRO_VERSION=34 +DISTRO_VERSION=36 RPM_NVR="python3-avocado-${VERSION}-${RPM_RELEASE_NUMBER}.${COMMIT_DATE}git${SHORT_COMMIT}.fc${DISTRO_VERSION}" PODMAN=$(which podman) -PODMAN_IMAGE="${DISTRO}:${DISTRO_VERSION}" +PODMAN_IMAGE=quay.io/avocado-framework/check-copr-rpm-version -$PODMAN run --rm -ti $PODMAN_IMAGE /bin/bash -c "dnf -y module disable avocado && dnf -y install 'dnf-command(copr)' && dnf -y copr enable @avocado/avocado-latest && dnf -y install ${RPM_NVR}" +$PODMAN run --rm -ti $PODMAN_IMAGE /bin/bash -c "dnf -y install ${RPM_NVR}" From 8343d4dab7b6d637b9f159dcd2ee2e7ecb668466 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 11 Jul 2022 12:14:55 -0400 Subject: [PATCH 2/5] COPR version check: use the right commit ref for the date lookup Without the explicit commit reference, if one is on a repo not in sync with the remote ref, it will return the date on the *local* repo commit instead. Signed-off-by: Cleber Rosa --- selftests/pre_release/tests/check-copr-rpm-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selftests/pre_release/tests/check-copr-rpm-version.sh b/selftests/pre_release/tests/check-copr-rpm-version.sh index 617bbfa6d0..490cb2f414 100755 --- a/selftests/pre_release/tests/check-copr-rpm-version.sh +++ b/selftests/pre_release/tests/check-copr-rpm-version.sh @@ -9,7 +9,7 @@ git fetch $ORIGIN ORIGIN_MASTER_COMMIT=$(git log --pretty=format:'%h' -n 1 $ORIGIN/master) VERSION=$(python setup.py --version 2>/dev/null) -COMMIT_DATE=$(git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1) +COMMIT_DATE=$(git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1 $ORIGIN/master) SHORT_COMMIT=$(git rev-parse --short=9 $ORIGIN/master) RPM_RELEASE_NUMBER=$(grep -E '^Release:\s([0-9]+)' python-avocado.spec | sed -E 's/Release:\s([0-9]+).*/\1/') DISTRO_VERSION=36 From ec18ceea3e080bbb0be508bc334bd06a7934f953 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 25 Oct 2022 15:18:48 -0400 Subject: [PATCH 3/5] check-copr-rpm-version.sh: track the 92lts branch This branch is 92lts from master and this check should follow that branch. Signed-off-by: Cleber Rosa --- selftests/pre_release/tests/check-copr-rpm-version.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/selftests/pre_release/tests/check-copr-rpm-version.sh b/selftests/pre_release/tests/check-copr-rpm-version.sh index 490cb2f414..aa331a7340 100755 --- a/selftests/pre_release/tests/check-copr-rpm-version.sh +++ b/selftests/pre_release/tests/check-copr-rpm-version.sh @@ -7,10 +7,10 @@ ORIGIN=origin git fetch $ORIGIN -ORIGIN_MASTER_COMMIT=$(git log --pretty=format:'%h' -n 1 $ORIGIN/master) +ORIGIN_MASTER_COMMIT=$(git log --pretty=format:'%h' -n 1 $ORIGIN/92lts) VERSION=$(python setup.py --version 2>/dev/null) -COMMIT_DATE=$(git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1 $ORIGIN/master) -SHORT_COMMIT=$(git rev-parse --short=9 $ORIGIN/master) +COMMIT_DATE=$(git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1 $ORIGIN/92lts) +SHORT_COMMIT=$(git rev-parse --short=9 $ORIGIN/92lts) RPM_RELEASE_NUMBER=$(grep -E '^Release:\s([0-9]+)' python-avocado.spec | sed -E 's/Release:\s([0-9]+).*/\1/') DISTRO_VERSION=36 From 6a4ddb8e5c85f7d191d5297d1b6845c925cf3fba Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 11 Jul 2022 12:14:55 -0400 Subject: [PATCH 4/5] COPR version check: allow docker to be used as a podman fallback In case the environment is not podman capable, we can still use docker for the same purpose. Signed-off-by: Cleber Rosa --- selftests/pre_release/tests/check-copr-rpm-version.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selftests/pre_release/tests/check-copr-rpm-version.sh b/selftests/pre_release/tests/check-copr-rpm-version.sh index aa331a7340..f4698fc4e9 100755 --- a/selftests/pre_release/tests/check-copr-rpm-version.sh +++ b/selftests/pre_release/tests/check-copr-rpm-version.sh @@ -16,7 +16,7 @@ DISTRO_VERSION=36 RPM_NVR="python3-avocado-${VERSION}-${RPM_RELEASE_NUMBER}.${COMMIT_DATE}git${SHORT_COMMIT}.fc${DISTRO_VERSION}" -PODMAN=$(which podman) +PODMAN=$(which podman 2>/dev/null || which docker) PODMAN_IMAGE=quay.io/avocado-framework/check-copr-rpm-version $PODMAN run --rm -ti $PODMAN_IMAGE /bin/bash -c "dnf -y install ${RPM_NVR}" From 7aac1b29ea8c27ffc3bc4f1ab8d5488cf51b2343 Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Mon, 11 Jul 2022 12:14:55 -0400 Subject: [PATCH 5/5] COPR version check: allow the package NVR to be specified This is useful for debugging and to check previous builds. Signed-off-by: Cleber Rosa --- selftests/pre_release/tests/check-copr-rpm-version.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/selftests/pre_release/tests/check-copr-rpm-version.sh b/selftests/pre_release/tests/check-copr-rpm-version.sh index f4698fc4e9..f366c02dda 100755 --- a/selftests/pre_release/tests/check-copr-rpm-version.sh +++ b/selftests/pre_release/tests/check-copr-rpm-version.sh @@ -1,5 +1,8 @@ #!/bin/sh -e +# This script accepts a package NVR as its first argument. If not given, +# it will default to a NVR based on the info of the repository given + # Put here the name of your GIT remote that tracks the official # repo, that is, https://github.com/avocado-framework/avocado # (or the git:// url version of the same repo) @@ -14,7 +17,8 @@ SHORT_COMMIT=$(git rev-parse --short=9 $ORIGIN/92lts) RPM_RELEASE_NUMBER=$(grep -E '^Release:\s([0-9]+)' python-avocado.spec | sed -E 's/Release:\s([0-9]+).*/\1/') DISTRO_VERSION=36 -RPM_NVR="python3-avocado-${VERSION}-${RPM_RELEASE_NUMBER}.${COMMIT_DATE}git${SHORT_COMMIT}.fc${DISTRO_VERSION}" +DEFAULT_RPM_NVR="python3-avocado-${VERSION}-${RPM_RELEASE_NUMBER}.${COMMIT_DATE}git${SHORT_COMMIT}.fc${DISTRO_VERSION}" +RPM_NVR="${1:-$DEFAULT_RPM_NVR}" PODMAN=$(which podman 2>/dev/null || which docker) PODMAN_IMAGE=quay.io/avocado-framework/check-copr-rpm-version