Bug #17472
Jenkins does not run the full test suite for tags
0%
Description
When Jenkins tested the Tails 4.3 tag, it didn’t run @fragile
scenarios, which is a bug. See e.g. https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2205/
In the console output I see this trace:
14:17:21 + echo origin/stable
14:17:21 + grep -q -E \+force-all-tests$
14:17:21 + [ stable = testing ]
14:17:21 + [ stable = feature/tor-nightly-master ]
14:17:21 + [ stable = devel ]
14:17:21 + git describe --tags --exact-match 4904a1fde8887488167a8a6c34b34c45b51aa112
14:17:21 + [ 4904a1fde8887488167a8a6c34b34c45b51aa112 != 4904a1fde8887488167a8a6c34b34c45b51aa112 ]
14:17:21 + TAGS_ARGS=--tag ~@fragile
for this part of wrap_test_suite
:
if echo "${UPSTREAMJOB_GIT_BRANCH}" | grep -q -E '\+force-all-tests$' \
|| [ "${GIT_BRANCH#origin/}" = testing ] \
|| [ "${GIT_BRANCH#origin/}" = feature/tor-nightly-master ] \
|| [ "${GIT_BRANCH#origin/}" = devel ] ; then
TAGS_ARGS=""
elif git describe --tags --exact-match "${UPSTREAMJOB_GIT_COMMIT}" >/dev/null 2>&1; then
TAGS_ARGS=""
elif [ "${UPSTREAMJOB_GIT_COMMIT}" != "${UPSTREAMJOB_GIT_BASE_BRANCH_HEAD}" ] && \
only_changes_doc "$UPSTREAMJOB_GIT_BASE_BRANCH_HEAD"; then
TAGS_ARGS="--tag ~@fragile --tag @doc"
else
TAGS_ARGS="--tag ~@fragile"
fi
So $UPSTREAMJOB_GIT_COMMIT
is commit:4904a1f, which is not the 4.3 tag (it is commit:2797053), but just one of the commits I made yesterday, so the correct if
-case for releases was not hit. Note that commit:4904a1f is not the commit that was initially tagged 4.3 (FWIW, that was commit:4172c53), so there was no mix up with the tag update. I have no clue how commit:4904a1f entered the picture since it doesn’t seem very special. Curious!
Subtasks
History
#1 Updated by intrigeri 2020-02-16 10:16:04
- Status changed from Confirmed to New
- Assignee changed from intrigeri to anonym
> When Jenkins tested the Tails 4.3 tag, it didn’t run @fragile
scenarios, which is a bug. See e.g. https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2205/
What makes you think that this specific run was supposed to test the 4.3 tag?
That test suite run has been triggered by https://jenkins.tails.boum.org/job/build_Tails_ISO_stable/3140/, which was about commit:4904a1f, which I believed was triggered by the Git push at the end of the “Update other base branches” section of the release process (the timing matches: commit done on Feb 10 10:02:43 2020, build started at Feb 10, 2020 10:17:36 AM). So to me, it seems that not running fragile scenarios in this case was the expected behavior.
The first build from the tag was https://jenkins.tails.boum.org/job/build_Tails_ISO_stable/3142/, started a few hours later.
It triggered https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2207/, which did run the full test suite, which is what we want.
#2 Updated by anonym 2020-02-17 09:33:24
- Assignee changed from anonym to intrigeri
intrigeri wrote:
> > When Jenkins tested the Tails 4.3 tag, it didn’t run @fragile
scenarios, which is a bug. See e.g. https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2205/
>
> What makes you think that this specific run was supposed to test the 4.3 tag?
That test_Tails_ISO job says “Revision: 2797053a53225134a74e0bcc80682e05bfcb7edd” which is the commit for the real 4.3 tag. I have always assumed that build_Tails_ISO will trigger a test_Tails_ISO from the exact same commit; I never thought revisions could be mixed like that, and it in fact seems like a source of bad test results. What is going on here? What am I missing?
> That test suite run has been triggered by https://jenkins.tails.boum.org/job/build_Tails_ISO_stable/3140/, which was about commit:4904a1f, which I believed was triggered by the Git push at the end of the “Update other base branches” section of the release process (the timing matches: commit done on Feb 10 10:02:43 2020, build started at Feb 10, 2020 10:17:36 AM). So to me, it seems that not running fragile scenarios in this case was the expected behavior.
>
> The first build from the tag was https://jenkins.tails.boum.org/job/build_Tails_ISO_stable/3142/, started a few hours later.
> It triggered https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2207/, which did run the full test suite, which is what we want.
Ah, I see! Cased closed, but I’ll wait for an answer to the above before closing the ticket.
#3 Updated by intrigeri 2020-02-17 09:49:01
- Assignee changed from intrigeri to anonym
Hi,
anonym wrote:
> intrigeri wrote:
>> > When Jenkins tested the Tails 4.3 tag, it didn’t run @fragile
scenarios, which is a bug. See e.g. https://jenkins.tails.boum.org/job/test_Tails_ISO_stable/2205/
>>
>> What makes you think that this specific run was supposed to test the 4.3 tag?
>
> That test_Tails_ISO job says “Revision: 2797053a53225134a74e0bcc80682e05bfcb7edd” which is the commit for the real 4.3 tag. I have always assumed that build_Tails_ISO will trigger a test_Tails_ISO from the exact same commit; I never thought revisions could be mixed like that, and it in fact seems like a source of bad test results. What is going on here? What am I missing?
OK, I think I now understand the source of the misunderstanding!
I think the confusion comes from the mismatch between:
- Your correct understanding of the intended high-level behavior:
build_Tails_ISO
does trigger atest_Tails_ISO
from the exact same commit. In the test job run log you’ll seegit reset --hard 4904a1fde8887488167a8a6c34b34c45b51aa112
. - Low-level implementation “details”, i.e.:
- When it starts a run of
test_Tails_ISO
, Jenkins itself does not know which commit we want to test. Hence the confusing “Revision: 2797053a53225134a74e0bcc80682e05bfcb7edd” information it displays. - The code that implements that job is currently responsible for resetting the working copy to the desired state.
- When it starts a run of
Unfortunately, I don’t think there’s any way to hide the confusing “Revision:” info via configuration, short of patching the corresponding Jenkins plugin; and the awful HTML+CSS implementation (OMG!) makes it hard to hide it via CSS :/
Would it help if I documented this in our doc aimed at developers?
Or are we bound to forget occasionally about it and not refer to the doc anyway?
#4 Updated by intrigeri 2020-03-28 09:49:53
- Status changed from New to In Progress
Applied in changeset commit:tails|7d39c7fb6c1ec4db5ed8f4fb468034b9cc72a445.
#5 Updated by intrigeri 2020-03-28 09:51:30
- Status changed from In Progress to Needs Validation
Hi,
> Would it help if I documented this in our doc aimed at developers?
I went ahead and did it. Please review commit:7d39c7fb6c1ec4db5ed8f4fb468034b9cc72a445.