Skip to content

Commit bcc1d35

Browse files
authored
Remove concurrency from CDN (SSL) test (#17038)
* Reshard cdn(ssl) tests * Register new marker * Only run SSL tests in one shard * Limit parallelization
1 parent e4c4905 commit bcc1d35

File tree

3 files changed

+27
-16
lines changed

3 files changed

+27
-16
lines changed

.github/workflows/cdn_tests.yml

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,17 @@ concurrency:
1818
group: cdn-tests
1919
cancel-in-progress: false
2020

21+
permissions:
22+
contents: read
23+
2124
jobs:
2225
notify-of-test-run-start:
2326
if: github.repository == 'mozilla/bedrock'
2427
runs-on: ubuntu-latest
2528
steps:
26-
- uses: actions/checkout@v5
29+
- uses: actions/checkout@v6
30+
with:
31+
sparse-checkout: .github/actions/slack
2732
- name: Notify via Slack that tests are starting
2833
uses: ./.github/actions/slack
2934
with:
@@ -36,25 +41,25 @@ jobs:
3641
message: "CDN tests started"
3742

3843
cdn-tests:
44+
if: github.repository == 'mozilla/bedrock'
3945
runs-on: ubuntu-latest
40-
needs: notify-of-test-run-start
4146
strategy:
4247
matrix:
4348
include:
44-
- LABEL: "CDN and SSL tests"
45-
SHARD_LABEL: "cdn"
46-
MARK_EXPRESSION: "cdn and not cdnprod"
47-
- LABEL: "SSL client simulation"
48-
SHARD_LABEL: "sim"
49-
MARK_EXPRESSION: cdnprod
49+
- LABEL: "CDN check"
50+
SHARD_LABEL: cdn
51+
MARK_EXPRESSION: "cdn and not cdnssl"
52+
- LABEL: "SSL scan"
53+
SHARD_LABEL: ssl
54+
MARK_EXPRESSION: "cdnssl"
5055
env:
5156
BASE_URL: ${{ github.event.inputs.mozorg_service_hostname || 'https://www.mozilla.org' }} # Mozorg base URL
5257
BROWSER_NAME: ""
5358
CI_JOB_ID: ${{ github.run_id }}
5459
DRIVER: ""
5560
LABEL: ${{ matrix.LABEL }}
5661
MARK_EXPRESSION: ${{ matrix.MARK_EXPRESSION }}
57-
PYTEST_PROCESSES: auto
62+
PYTEST_PROCESSES: 1
5863
SAUCELABS_API_KEY: ""
5964
SAUCELABS_USERNAME: ""
6065
RERUNS_ALLOWED: 3
@@ -66,7 +71,7 @@ jobs:
6671

6772
steps:
6873
- name: Fetch codebase
69-
uses: actions/checkout@v5
74+
uses: actions/checkout@v6
7075

7176
- name: Run CDN tests
7277
run: ./bin/integration_tests/functional_tests.sh
@@ -79,18 +84,20 @@ jobs:
7984

8085
- name: Store artifacts
8186
if: always()
82-
uses: actions/upload-artifact@v4
87+
uses: actions/upload-artifact@v6
8388
with:
8489
name: test-results-${{github.run_id}}-${{ matrix.SHARD_LABEL }}
8590
path: results-${{github.run_id}}
8691
if-no-files-found: ignore # this avoids a false "Warning" if there were no issues
8792

8893
notify-of-test-run-completion:
89-
if: github.repository == 'mozilla/bedrock' && always()
94+
if: always()
95+
needs: cdn-tests
9096
runs-on: ubuntu-latest
91-
needs: [notify-of-test-run-start, cdn-tests]
9297
steps:
93-
- uses: actions/checkout@v5
98+
- uses: actions/checkout@v6
99+
with:
100+
sparse-checkout: .github/actions/slack
94101
- name: Notify via Slack of test-run outcome
95102
uses: ./.github/actions/slack
96103
with:

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ testpaths =
1010
# Declare custom pytest markers to reduce test-output noise
1111
markers =
1212
cdn
13-
cdnprod
13+
cdnssl
1414
download
1515
headless
1616
skip_if_firefox

tests/functional/test_cdn.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ def get_ssl_json_results(tmp_filename):
4444

4545

4646
@pytest.mark.cdn
47+
@pytest.mark.cdnssl
4748
@pytest.fixture(scope="session")
4849
def get_ssllabs_results(base_url):
4950
tmp_filename = "ssllabs_data.txt"
@@ -129,6 +130,7 @@ def test_cdn_cache(base_url):
129130

130131

131132
@pytest.mark.cdn
133+
@pytest.mark.cdnssl
132134
@pytest.mark.nondestructive
133135
@pytest.mark.parametrize("version", supported_versions, ids=itemgetter(0))
134136
def test_enabled_protocols(version, get_ssllabs_results):
@@ -143,6 +145,7 @@ def test_enabled_protocols(version, get_ssllabs_results):
143145

144146

145147
@pytest.mark.cdn
148+
@pytest.mark.cdnssl
146149
@pytest.mark.nondestructive
147150
@pytest.mark.parametrize("version", unsupported_versions, ids=itemgetter(0))
148151
def test_disabled_protocols(version, get_ssllabs_results):
@@ -157,6 +160,7 @@ def test_disabled_protocols(version, get_ssllabs_results):
157160

158161

159162
@pytest.mark.cdn
163+
@pytest.mark.cdnssl
160164
@pytest.mark.nondestructive
161165
@pytest.mark.parametrize("cipher", ciphers, ids=itemgetter(0))
162166
def test_enabled_ciphers(cipher, get_ssllabs_results):
@@ -171,7 +175,7 @@ def test_enabled_ciphers(cipher, get_ssllabs_results):
171175

172176

173177
@pytest.mark.cdn
174-
@pytest.mark.cdnprod
178+
@pytest.mark.cdnssl
175179
@pytest.mark.nondestructive
176180
def test_tls(get_ssllabs_results):
177181
"""Check get_ssllabs_results to make sure that all expected clients connected without issue"""

0 commit comments

Comments
 (0)