Skip to content

ci: skip backport label job by default#12169

Closed
1ort wants to merge 2 commits intoaio-libs:masterfrom
1ort:fix/ci-backport-label-job-skip
Closed

ci: skip backport label job by default#12169
1ort wants to merge 2 commits intoaio-libs:masterfrom
1ort:fix/ci-backport-label-job-skip

Conversation

@1ort
Copy link
Copy Markdown

@1ort 1ort commented Feb 28, 2026

Summary

  • make the backport label job skip on normal PRs instead of failing
  • gate the job on PRs that already carry a backport label
  • keep the workflow green unless a real backport check should run

Related

Testing

  • not run locally (GitHub Actions workflow change)
  • draft PR opened to validate the job is skipped on a normal PR and runs when a backport label is added

@codecov
Copy link
Copy Markdown

codecov bot commented Feb 28, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
4333 1 4332 110
View the full list of 1 ❄️ flaky test(s)
tests.test_client_request::test_data_file[pyloop]

Flake rate in main: 5.06% (Passed 507 times, Failed 27 times)

Stack Traces | 0.112s run time
loop = <_UnixSelectorEventLoop running=False closed=False debug=False>
buf = bytearray(b'POST / HTTP/1.1\r\nHost: python.org\r\nAccept: */*\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nUser-Age...Content-Type: application/octet-stream\r\nTransfer-Encoding: chunked\r\nConnection: close\r\n\r\n2\r\n**\r\n0\r\n\r\n')
conn = <Mock id='3756439677712'>
make_client_request = <function make_client_request.<locals>.maker at 0x36a9f4687c0>

    #x1B[0m#x1B[94masync#x1B[39;49;00m #x1B[94mdef#x1B[39;49;00m#x1B[90m #x1B[39;49;00m#x1B[92mtest_data_file#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
        loop: asyncio.AbstractEventLoop,#x1B[90m#x1B[39;49;00m
        buf: #x1B[96mbytearray#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
        conn: mock.Mock,#x1B[90m#x1B[39;49;00m
        make_client_request: _RequestMaker,#x1B[90m#x1B[39;49;00m
    ) -> #x1B[94mNone#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
        #x1B[94mwith#x1B[39;49;00m io.BufferedReader(io.BytesIO(#x1B[33mb#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33m*#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m * #x1B[94m2#x1B[39;49;00m)) #x1B[94mas#x1B[39;49;00m file_handle:#x1B[90m#x1B[39;49;00m
            req = make_client_request(#x1B[90m#x1B[39;49;00m
                #x1B[33m"#x1B[39;49;00m#x1B[33mPOST#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m,#x1B[90m#x1B[39;49;00m
                URL(#x1B[33m"#x1B[39;49;00m#x1B[33mhttp://python.org/#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m),#x1B[90m#x1B[39;49;00m
                data=file_handle,#x1B[90m#x1B[39;49;00m
                loop=loop,#x1B[90m#x1B[39;49;00m
            )#x1B[90m#x1B[39;49;00m
            #x1B[94massert#x1B[39;49;00m req.chunked#x1B[90m#x1B[39;49;00m
            #x1B[94massert#x1B[39;49;00m #x1B[96misinstance#x1B[39;49;00m(req.body, payload.BufferedReaderPayload)#x1B[90m#x1B[39;49;00m
            #x1B[94massert#x1B[39;49;00m req.headers[#x1B[33m"#x1B[39;49;00m#x1B[33mTRANSFER-ENCODING#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m] == #x1B[33m"#x1B[39;49;00m#x1B[33mchunked#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
    #x1B[90m#x1B[39;49;00m
            resp = #x1B[94mawait#x1B[39;49;00m req._send(conn)#x1B[90m#x1B[39;49;00m
>           #x1B[94massert#x1B[39;49;00m asyncio.isfuture(req._writer)#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE           assert False#x1B[0m
#x1B[1m#x1B[31mE            +  where False = <function isfuture at 0x36a97efd8c0>(None)#x1B[0m
#x1B[1m#x1B[31mE            +    where <function isfuture at 0x36a97efd8c0> = asyncio.isfuture#x1B[0m
#x1B[1m#x1B[31mE            +    and   None = <aiohttp.client_reqrep.ClientRequest object at 0x36aa0711550>._writer#x1B[0m

buf        = bytearray(b'POST / HTTP/1.1\r\nHost: python.org\r\nAccept: */*\r\nAccept-Encoding: gzip, deflate, br, zstd\r\nUser-Age...Content-Type: application/octet-stream\r\nTransfer-Encoding: chunked\r\nConnection: close\r\n\r\n2\r\n**\r\n0\r\n\r\n')
conn       = <Mock id='3756439677712'>
file_handle = <_io.BufferedReader>
loop       = <_UnixSelectorEventLoop running=False closed=False debug=False>
make_client_request = <function make_client_request.<locals>.maker at 0x36a9f4687c0>
req        = <aiohttp.client_reqrep.ClientRequest object at 0x36aa0711550>
resp       = <ClientResponse(http://python.org/) [None None]>
None


#x1B[1m#x1B[31mtests/test_client_request.py#x1B[0m:1356: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Feb 28, 2026

Merging this PR will not alter performance

✅ 59 untouched benchmarks


Comparing 1ort:fix/ci-backport-label-job-skip (cd37f9c) with master (c1981ef)

Open in CodSpeed

@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Feb 28, 2026
@1ort 1ort marked this pull request as ready for review February 28, 2026 20:39
@webknjaz
Copy link
Copy Markdown
Member

@1ort could you fill out the PR template instead of discarding it?

@rodrigobnogueira
Copy link
Copy Markdown
Member

@1ort , the test_data_file was fixed in #12170 and is now on master.
Just rebase on origin/master and push. CI should pass. Thanks! 👍

@Dreamsorcerer
Copy link
Copy Markdown
Member

The sole purpose of this test is to verify that the label is present, running it only when the label is present clearly defeats the point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bot:chronographer:provided There is a change note present in this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants