Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lowercase branches when constructing an image identifier #1560

Conversation

ppisar
Copy link
Contributor

@ppisar ppisar commented Oct 7, 2024

Executing a pull request test from a branch with upper case letters ended up with this error:

    Command '/var/ARTIFACTS/work-behave-createrepo_crye9wxe5/plans/integration/behave-createrepo_c/tree/tmt-prepare-wrapper.sh-Build-testing-container-default-0' returned 1.

    stderr (2 lines)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Error: tag container-test-unistd-for-STDOUT_FILENO-master: invalid reference format: repository name must be lowercase
    Error: Failed to build the container.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The cause was that -c argument of container-test script was built from a "container-test-unistd-for-STDOUT_FILENO" branch name. The container-test -c value is then directly passed as an image identifier to podman build and podman run commands. Problem is that podman, as well as docker, does not allow upper-case characters in the OCI identifier.

I wanted to circumvent it in the container-test script, to have a fix at one place. But one can pass a tag name there (foo/bar:tag) and the tag is handled case sensitively by docker.

So this patch fixes it on the invocation side.

NOTE: I could not really test it. I only tried a prepare phase of locally run TMT and it correctly transliterated the branch names. You should be able to fix by rerunning tests for
rpm-software-management/createrepo_c#439.

Executing a pull request test from a branch with upper case letters
ended up with this error:

        Command '/var/ARTIFACTS/work-behave-createrepo_crye9wxe5/plans/integration/behave-createrepo_c/tree/tmt-prepare-wrapper.sh-Build-testing-container-default-0' returned 1.

        stderr (2 lines)
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        Error: tag container-test-unistd-for-STDOUT_FILENO-master: invalid reference format: repository name must be lowercase
        Error: Failed to build the container.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The cause was that -c argument of container-test script was built from
a "container-test-unistd-for-STDOUT_FILENO" branch name. The
container-test -c value is then directly passed as an image identifier
to podman build and podman run commands. Problem is that podman, as
well as docker, does not allow upper-case characters in the OCI
identifier.

I wanted to circumvent it in the container-test script, to have a fix
at one place. But one can pass a tag name there (foo/bar:tag) and the
tag is handled case sensitively by docker.

So this patch fixes it on the invocation side.

NOTE: I could not really test it. I only tried a prepare phase of
locally run TMT and it correctly transliterated the branch names. You
should be able to fix by rerunning tests for
<rpm-software-management/createrepo_c#439>.
@kontura kontura self-assigned this Oct 10, 2024
@kontura
Copy link
Contributor

kontura commented Oct 10, 2024

Lets try it.

@kontura kontura merged commit 759c18e into rpm-software-management:enable-tmt-dnf-4-stack Oct 10, 2024
2 of 3 checks passed
@ppisar
Copy link
Contributor Author

ppisar commented Oct 11, 2024

Thanks. It helped. Now most of tests for that crearerepo_c pull requests passed. The remaining three are a completely different errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants