utf-queue-client 1.21.3__tar.gz → 1.21.3b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.gitignore +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.gitmodules +3 -3
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.idea/.gitignore +13 -13
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.idea/modules.xml +7 -7
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.idea/utf_queue_client_python.iml +16 -16
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.idea/vcs.xml +6 -6
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/.pre-commit-config.yaml +9 -9
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/Jenkinsfile +135 -135
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/PKG-INFO +21 -22
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/examples/example_async_consumer.py +20 -20
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/pyproject.toml +73 -74
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/requirements.txt +16 -16
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/setup.cfg +4 -4
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/sonar-project.properties +9 -9
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/Dockerfile.script_test +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/conftest.py +353 -353
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/pytest.ini +6 -6
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/script_test.groovy +37 -37
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/silabs-intermediate.pem +35 -35
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/silabs-root.pem +29 -29
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/stopwatch.py +21 -21
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_amqp_connections.py +47 -47
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_async_consumer.py +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_ca_cert.py +84 -84
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_connection_retry.py +41 -41
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_data_lake_data_producer.py +58 -58
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_http_producer.py +91 -91
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_models.py +129 -129
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_opentelemetry_data_producer.py +167 -167
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_publish_test_results.py +256 -256
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_rail_data_producer_tests.py +64 -64
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_sqa_test_result_producer.py +54 -54
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_ubai_search.py +83 -83
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_ubai_update_retention.py +63 -63
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_ubai_upload.py +131 -131
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_utils.py +78 -78
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_xray_data_producer.py +65 -65
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test-requirements-pydantic-v1.txt +13 -13
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test-requirements.txt +13 -13
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/build_dist.bat +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/setup_venv.bat +7 -7
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/silabs-net.pem +20 -20
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/silabs.pem +174 -174
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/update_schema.bat +2 -2
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/upload_to_nexus.bat +18 -18
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/upload_to_pypi.bat +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tools/upload_to_testpypi.bat +14 -14
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/tox.ini +17 -17
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/__init__.py +1 -1
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/__init__.py +47 -47
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/async_consumer.py +581 -581
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/base_producer.py +163 -163
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/data_lake_data_producer.py +136 -136
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/http_producer.py +210 -210
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/opentelemetry_data_producer.py +53 -53
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/sqa_test_result_producer.py +202 -202
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/test_rail_data_producer.py +97 -97
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/ubai_artifact_upload_request_producer.py +126 -126
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/clients/xray_data_producer.py +95 -95
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/exceptions/__init__.py +20 -20
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/__init__.py +1 -1
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/base_model.py +57 -57
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/model_factory.py +13 -13
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/__init__.py +22 -22
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/utf_queue_models/models/python/generated_models.py +81 -81
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/utf_queue_models/models/python/generated_models_pydantic_v1.py +389 -389
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/utf_queue_models/models/python/generated_models_pydantic_v2.py +400 -400
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/utf_queue_models/schema/queue_message.json +955 -955
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/__init__.py +89 -89
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/publish_test_results_cli.py +176 -176
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/ubai_search_cli.py +80 -80
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/ubai_update_retention_cli.py +75 -75
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/ubai_upload_cli.py +133 -133
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/utils/__init__.py +94 -94
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/utils/queue_metrics_exporter.py +87 -87
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/utils/queue_span_exporter.py +87 -87
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/PKG-INFO +21 -22
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/requires.txt +0 -1
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/README.md +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/.gitattributes +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test.hex +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_publish_release_info.py +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/test/test_ubai_copy.py +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/models/schemas/utf_queue_models/models/python/__init__.py +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/publish_release_info_cli.py +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client/scripts/ubai_copy_cli.py +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/SOURCES.txt +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/dependency_links.txt +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/entry_points.txt +0 -0
- {utf_queue_client-1.21.3 → utf_queue_client-1.21.3b1}/utf_queue_client.egg-info/top_level.txt +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
*.pyc
|
|
2
|
-
**/venv/
|
|
3
|
-
**/venv2/
|
|
4
|
-
**/venv_2/
|
|
5
|
-
build/
|
|
6
|
-
dist/
|
|
7
|
-
utf_queue_client.egg-info/
|
|
8
|
-
test/vault-ca-dev.crt
|
|
9
|
-
test/vault-ca.crt
|
|
10
|
-
test/silabs-net.pem
|
|
11
|
-
test/test_results/
|
|
12
|
-
.coverage*
|
|
13
|
-
/*idea
|
|
14
|
-
**/*.env
|
|
1
|
+
*.pyc
|
|
2
|
+
**/venv/
|
|
3
|
+
**/venv2/
|
|
4
|
+
**/venv_2/
|
|
5
|
+
build/
|
|
6
|
+
dist/
|
|
7
|
+
utf_queue_client.egg-info/
|
|
8
|
+
test/vault-ca-dev.crt
|
|
9
|
+
test/vault-ca.crt
|
|
10
|
+
test/silabs-net.pem
|
|
11
|
+
test/test_results/
|
|
12
|
+
.coverage*
|
|
13
|
+
/*idea
|
|
14
|
+
**/*.env
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
[submodule "models/schemas/utf_queue_models"]
|
|
2
|
-
path = utf_queue_client/models/schemas/utf_queue_models
|
|
3
|
-
url = ../../utf/utf_queue_models
|
|
1
|
+
[submodule "models/schemas/utf_queue_models"]
|
|
2
|
+
path = utf_queue_client/models/schemas/utf_queue_models
|
|
3
|
+
url = ../../utf/utf_queue_models
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# Default ignored files
|
|
2
|
-
/shelf/
|
|
3
|
-
/workspace.xml
|
|
4
|
-
misc.xml
|
|
5
|
-
inspectionProfiles/
|
|
6
|
-
sonarlint/
|
|
7
|
-
watcherTasks.xml
|
|
8
|
-
# Datasource local storage ignored files
|
|
9
|
-
dataSources/
|
|
10
|
-
/dataSources.local.xml
|
|
11
|
-
# Editor-based HTTP Client requests
|
|
12
|
-
/httpRequests/
|
|
13
|
-
|
|
1
|
+
# Default ignored files
|
|
2
|
+
/shelf/
|
|
3
|
+
/workspace.xml
|
|
4
|
+
misc.xml
|
|
5
|
+
inspectionProfiles/
|
|
6
|
+
sonarlint/
|
|
7
|
+
watcherTasks.xml
|
|
8
|
+
# Datasource local storage ignored files
|
|
9
|
+
dataSources/
|
|
10
|
+
/dataSources.local.xml
|
|
11
|
+
# Editor-based HTTP Client requests
|
|
12
|
+
/httpRequests/
|
|
13
|
+
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/utf_queue_client_python.iml" filepath="$PROJECT_DIR$/.idea/utf_queue_client_python.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="ProjectModuleManager">
|
|
4
|
+
<modules>
|
|
5
|
+
<module fileurl="file://$PROJECT_DIR$/.idea/utf_queue_client_python.iml" filepath="$PROJECT_DIR$/.idea/utf_queue_client_python.iml" />
|
|
6
|
+
</modules>
|
|
7
|
+
</component>
|
|
8
8
|
</project>
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="PYTHON_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager">
|
|
4
|
-
<content url="file://$MODULE_DIR$">
|
|
5
|
-
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
|
6
|
-
</content>
|
|
7
|
-
<orderEntry type="
|
|
8
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
9
|
-
</component>
|
|
10
|
-
<component name="PyDocumentationSettings">
|
|
11
|
-
<option name="format" value="PLAIN" />
|
|
12
|
-
<option name="myDocStringFormat" value="Plain" />
|
|
13
|
-
</component>
|
|
14
|
-
<component name="TestRunnerService">
|
|
15
|
-
<option name="PROJECT_TEST_RUNNER" value="pytest" />
|
|
16
|
-
</component>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="PYTHON_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager">
|
|
4
|
+
<content url="file://$MODULE_DIR$">
|
|
5
|
+
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
|
6
|
+
</content>
|
|
7
|
+
<orderEntry type="jdk" jdkName="Python 3.12 (utf_queue_client_python)" jdkType="Python SDK" />
|
|
8
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
9
|
+
</component>
|
|
10
|
+
<component name="PyDocumentationSettings">
|
|
11
|
+
<option name="format" value="PLAIN" />
|
|
12
|
+
<option name="myDocStringFormat" value="Plain" />
|
|
13
|
+
</component>
|
|
14
|
+
<component name="TestRunnerService">
|
|
15
|
+
<option name="PROJECT_TEST_RUNNER" value="pytest" />
|
|
16
|
+
</component>
|
|
17
17
|
</module>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="VcsDirectoryMappings">
|
|
4
|
-
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
5
|
-
<mapping directory="$PROJECT_DIR$/utf_queue_client/models/schemas/utf_queue_models" vcs="Git" />
|
|
6
|
-
</component>
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project version="4">
|
|
3
|
+
<component name="VcsDirectoryMappings">
|
|
4
|
+
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
5
|
+
<mapping directory="$PROJECT_DIR$/utf_queue_client/models/schemas/utf_queue_models" vcs="Git" />
|
|
6
|
+
</component>
|
|
7
7
|
</project>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
repos:
|
|
2
|
-
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
-
# Ruff version.
|
|
4
|
-
rev: v0.8.3
|
|
5
|
-
hooks:
|
|
6
|
-
# Run the linter.
|
|
7
|
-
- id: ruff
|
|
8
|
-
args: [ --fix ]
|
|
9
|
-
# Run the formatter.
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
3
|
+
# Ruff version.
|
|
4
|
+
rev: v0.8.3
|
|
5
|
+
hooks:
|
|
6
|
+
# Run the linter.
|
|
7
|
+
- id: ruff
|
|
8
|
+
args: [ --fix ]
|
|
9
|
+
# Run the formatter.
|
|
10
10
|
- id: ruff-format
|
|
@@ -1,135 +1,135 @@
|
|
|
1
|
-
@Library('utf-pipeline-libraries') _
|
|
2
|
-
|
|
3
|
-
def vaultSecrets = [
|
|
4
|
-
[
|
|
5
|
-
path: 'teams/infra-sw/app/pypi-tokens',
|
|
6
|
-
secretValues: [
|
|
7
|
-
[
|
|
8
|
-
envVar: 'TWINE_PASSWORD',
|
|
9
|
-
vaultKey: 'utf-queue-client'
|
|
10
|
-
]
|
|
11
|
-
]
|
|
12
|
-
]
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
pipeline {
|
|
16
|
-
agent {
|
|
17
|
-
label "AWSLinuxWorker"
|
|
18
|
-
}
|
|
19
|
-
options {
|
|
20
|
-
disableConcurrentBuilds()
|
|
21
|
-
lock(resource: 'utf-queue-central-testing')
|
|
22
|
-
}
|
|
23
|
-
environment {
|
|
24
|
-
GIT_HASH = GIT_COMMIT.take(10)
|
|
25
|
-
TEST_RESULTS_DIR = 'test/test_results'
|
|
26
|
-
OTEL_EXPORTER_OTLP_ENDPOINT = "https://otel-collector-http.silabs.net"
|
|
27
|
-
OTEL_EXPORTER_OTLP_PROTOCOL = "http/protobuf"
|
|
28
|
-
UTF_QUEUE_VIRTUAL_HOST = "testing"
|
|
29
|
-
OTEL_SERVICE_NAME = "utf-queue-client-tests"
|
|
30
|
-
PYENV_VERSION = "3.9"
|
|
31
|
-
}
|
|
32
|
-
stages {
|
|
33
|
-
stage("environment setup") {
|
|
34
|
-
steps {
|
|
35
|
-
withCredentials([sshUserPrivateKey(credentialsId: '87616d18-3af5-4fa6-b20f-538f92b10079',
|
|
36
|
-
keyFileVariable: 'JENKINS_SSH_KEY_PATH',
|
|
37
|
-
passphraseVariable: 'PASSPHRASE_UNUSED', \
|
|
38
|
-
usernameVariable: 'USERNAME_UNUSED')]) {
|
|
39
|
-
sh '''
|
|
40
|
-
export GIT_SSH_COMMAND=ssh\\ -o\\ StrictHostKeyChecking=no\\ -i\\ \\"$JENKINS_SSH_KEY_PATH\\"
|
|
41
|
-
git fetch --no-tags --force --progress -- ssh://git@stash.silabs.com/utf/utf_queue_client_python.git +refs/heads/main:refs/remotes/origin/main
|
|
42
|
-
'''
|
|
43
|
-
}
|
|
44
|
-
// set up first venv with test-requirements.txt
|
|
45
|
-
sh '''
|
|
46
|
-
python3 -m venv venv
|
|
47
|
-
. venv/bin/activate
|
|
48
|
-
uv pip install --upgrade pip wheel
|
|
49
|
-
uv pip install -r test-requirements.txt
|
|
50
|
-
|
|
51
|
-
pre-commit run --all-files
|
|
52
|
-
'''
|
|
53
|
-
// set up second venv with test-requirements-pydantic-v1.txt
|
|
54
|
-
sh '''
|
|
55
|
-
python3 -m venv venv_2
|
|
56
|
-
. venv_2/bin/activate
|
|
57
|
-
uv pip install --upgrade pip wheel
|
|
58
|
-
uv pip install -r test-requirements-pydantic-v1.txt
|
|
59
|
-
'''
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
stage('Run Tests') {
|
|
63
|
-
steps {
|
|
64
|
-
withCredentials([usernamePassword(credentialsId: 'sqatest_readwrite', passwordVariable: 'UTF_QUEUE_PASSWORD', usernameVariable: 'UTF_QUEUE_USERNAME'),
|
|
65
|
-
usernamePassword(credentialsId: 'mwlabuser_jenkins', passwordVariable: 'UTF_QUEUE_PASSWORD_LDAP', usernameVariable: 'UTF_QUEUE_USERNAME_LDAP')]) {
|
|
66
|
-
catchError(buildResult: 'FAILURE', message: "[ERROR] One or more unit tests have failed", stageResult: 'FAILURE') {
|
|
67
|
-
sh '''
|
|
68
|
-
. venv/bin/activate
|
|
69
|
-
rm -rf ${TEST_RESULTS_DIR}
|
|
70
|
-
mkdir -p ${TEST_RESULTS_DIR}
|
|
71
|
-
set +e
|
|
72
|
-
export PYTHONPATH=$PWD
|
|
73
|
-
|
|
74
|
-
# test with venv from test-requirements.txt
|
|
75
|
-
python -m pytest test -n auto --dist loadscope --junit-prefix=test --junitxml=${TEST_RESULTS_DIR}/junit_report_unit.xml --cov-branch --cov=utf_queue_client
|
|
76
|
-
exitcode=$?
|
|
77
|
-
|
|
78
|
-
. venv_2/bin/activate
|
|
79
|
-
# test with venv from test-requirements-pydantic-v1.txt
|
|
80
|
-
python -m pytest test -n auto --dist loadscope --cov-append --cov-report xml:${TEST_RESULTS_DIR}/coverage.xml --cov-report html:${TEST_RESULTS_DIR}/cov_html --cov-branch --cov=utf_queue_client
|
|
81
|
-
exitcode_2=$?
|
|
82
|
-
|
|
83
|
-
if [ $exitcode -ne 0 ] || [ $exitcode_2 -ne 0 ]; then
|
|
84
|
-
exit 1
|
|
85
|
-
fi
|
|
86
|
-
'''
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
archiveArtifacts artifacts: "${TEST_RESULTS_DIR}/junit_report_*.xml,${TEST_RESULTS_DIR}/cov_html/*.*"
|
|
91
|
-
junit allowEmptyResults: false, testResults: "${TEST_RESULTS_DIR}/junit_report_*.xml"
|
|
92
|
-
|
|
93
|
-
withSonarQubeEnv(installationName: 'SILABS_SONARQUBE_SERVER') {
|
|
94
|
-
sh '''
|
|
95
|
-
${SONAR_SCANNER} -Dsonar.projectVersion=${GIT_HASH}
|
|
96
|
-
'''
|
|
97
|
-
}
|
|
98
|
-
timeout(time: 5, unit: 'MINUTES') {
|
|
99
|
-
waitForQualityGate abortPipeline: true
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
post {
|
|
103
|
-
failure {
|
|
104
|
-
error 'The "Run Tests" stage has failed'
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
stage('Deploy to pypi') {
|
|
109
|
-
when {
|
|
110
|
-
branch 'main'
|
|
111
|
-
}
|
|
112
|
-
environment {
|
|
113
|
-
TWINE_REPOSITORY_URL = "https://upload.pypi.org/legacy/"
|
|
114
|
-
TWINE_USERNAME = "__token__"
|
|
115
|
-
}
|
|
116
|
-
steps {
|
|
117
|
-
withVaultOnAgent(vaultSecrets: vaultSecrets) {
|
|
118
|
-
sh '''
|
|
119
|
-
if [ ! -f venv/bin/activate ]; then
|
|
120
|
-
python3 -m venv venv
|
|
121
|
-
fi
|
|
122
|
-
. venv/bin/activate
|
|
123
|
-
pip3 install wheel && pip3 install -r test-requirements.txt build
|
|
124
|
-
rm -rf build
|
|
125
|
-
rm -rf dist
|
|
126
|
-
rm -rf utf_queue_client.egg-info
|
|
127
|
-
python3 -m build
|
|
128
|
-
|
|
129
|
-
twine upload dist/*
|
|
130
|
-
'''
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
1
|
+
@Library('utf-pipeline-libraries') _
|
|
2
|
+
|
|
3
|
+
def vaultSecrets = [
|
|
4
|
+
[
|
|
5
|
+
path: 'teams/infra-sw/app/pypi-tokens',
|
|
6
|
+
secretValues: [
|
|
7
|
+
[
|
|
8
|
+
envVar: 'TWINE_PASSWORD',
|
|
9
|
+
vaultKey: 'utf-queue-client'
|
|
10
|
+
]
|
|
11
|
+
]
|
|
12
|
+
]
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
pipeline {
|
|
16
|
+
agent {
|
|
17
|
+
label "AWSLinuxWorker"
|
|
18
|
+
}
|
|
19
|
+
options {
|
|
20
|
+
disableConcurrentBuilds()
|
|
21
|
+
lock(resource: 'utf-queue-central-testing')
|
|
22
|
+
}
|
|
23
|
+
environment {
|
|
24
|
+
GIT_HASH = GIT_COMMIT.take(10)
|
|
25
|
+
TEST_RESULTS_DIR = 'test/test_results'
|
|
26
|
+
OTEL_EXPORTER_OTLP_ENDPOINT = "https://otel-collector-http.silabs.net"
|
|
27
|
+
OTEL_EXPORTER_OTLP_PROTOCOL = "http/protobuf"
|
|
28
|
+
UTF_QUEUE_VIRTUAL_HOST = "testing"
|
|
29
|
+
OTEL_SERVICE_NAME = "utf-queue-client-tests"
|
|
30
|
+
PYENV_VERSION = "3.9"
|
|
31
|
+
}
|
|
32
|
+
stages {
|
|
33
|
+
stage("environment setup") {
|
|
34
|
+
steps {
|
|
35
|
+
withCredentials([sshUserPrivateKey(credentialsId: '87616d18-3af5-4fa6-b20f-538f92b10079',
|
|
36
|
+
keyFileVariable: 'JENKINS_SSH_KEY_PATH',
|
|
37
|
+
passphraseVariable: 'PASSPHRASE_UNUSED', \
|
|
38
|
+
usernameVariable: 'USERNAME_UNUSED')]) {
|
|
39
|
+
sh '''
|
|
40
|
+
export GIT_SSH_COMMAND=ssh\\ -o\\ StrictHostKeyChecking=no\\ -i\\ \\"$JENKINS_SSH_KEY_PATH\\"
|
|
41
|
+
git fetch --no-tags --force --progress -- ssh://git@stash.silabs.com/utf/utf_queue_client_python.git +refs/heads/main:refs/remotes/origin/main
|
|
42
|
+
'''
|
|
43
|
+
}
|
|
44
|
+
// set up first venv with test-requirements.txt
|
|
45
|
+
sh '''
|
|
46
|
+
python3 -m venv venv
|
|
47
|
+
. venv/bin/activate
|
|
48
|
+
uv pip install --upgrade pip wheel
|
|
49
|
+
uv pip install -r test-requirements.txt
|
|
50
|
+
|
|
51
|
+
pre-commit run --all-files
|
|
52
|
+
'''
|
|
53
|
+
// set up second venv with test-requirements-pydantic-v1.txt
|
|
54
|
+
sh '''
|
|
55
|
+
python3 -m venv venv_2
|
|
56
|
+
. venv_2/bin/activate
|
|
57
|
+
uv pip install --upgrade pip wheel
|
|
58
|
+
uv pip install -r test-requirements-pydantic-v1.txt
|
|
59
|
+
'''
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
stage('Run Tests') {
|
|
63
|
+
steps {
|
|
64
|
+
withCredentials([usernamePassword(credentialsId: 'sqatest_readwrite', passwordVariable: 'UTF_QUEUE_PASSWORD', usernameVariable: 'UTF_QUEUE_USERNAME'),
|
|
65
|
+
usernamePassword(credentialsId: 'mwlabuser_jenkins', passwordVariable: 'UTF_QUEUE_PASSWORD_LDAP', usernameVariable: 'UTF_QUEUE_USERNAME_LDAP')]) {
|
|
66
|
+
catchError(buildResult: 'FAILURE', message: "[ERROR] One or more unit tests have failed", stageResult: 'FAILURE') {
|
|
67
|
+
sh '''
|
|
68
|
+
. venv/bin/activate
|
|
69
|
+
rm -rf ${TEST_RESULTS_DIR}
|
|
70
|
+
mkdir -p ${TEST_RESULTS_DIR}
|
|
71
|
+
set +e
|
|
72
|
+
export PYTHONPATH=$PWD
|
|
73
|
+
|
|
74
|
+
# test with venv from test-requirements.txt
|
|
75
|
+
python -m pytest test -n auto --dist loadscope --junit-prefix=test --junitxml=${TEST_RESULTS_DIR}/junit_report_unit.xml --cov-branch --cov=utf_queue_client
|
|
76
|
+
exitcode=$?
|
|
77
|
+
|
|
78
|
+
. venv_2/bin/activate
|
|
79
|
+
# test with venv from test-requirements-pydantic-v1.txt
|
|
80
|
+
python -m pytest test -n auto --dist loadscope --cov-append --cov-report xml:${TEST_RESULTS_DIR}/coverage.xml --cov-report html:${TEST_RESULTS_DIR}/cov_html --cov-branch --cov=utf_queue_client
|
|
81
|
+
exitcode_2=$?
|
|
82
|
+
|
|
83
|
+
if [ $exitcode -ne 0 ] || [ $exitcode_2 -ne 0 ]; then
|
|
84
|
+
exit 1
|
|
85
|
+
fi
|
|
86
|
+
'''
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
archiveArtifacts artifacts: "${TEST_RESULTS_DIR}/junit_report_*.xml,${TEST_RESULTS_DIR}/cov_html/*.*"
|
|
91
|
+
junit allowEmptyResults: false, testResults: "${TEST_RESULTS_DIR}/junit_report_*.xml"
|
|
92
|
+
|
|
93
|
+
withSonarQubeEnv(installationName: 'SILABS_SONARQUBE_SERVER') {
|
|
94
|
+
sh '''
|
|
95
|
+
${SONAR_SCANNER} -Dsonar.projectVersion=${GIT_HASH}
|
|
96
|
+
'''
|
|
97
|
+
}
|
|
98
|
+
timeout(time: 5, unit: 'MINUTES') {
|
|
99
|
+
waitForQualityGate abortPipeline: true
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
post {
|
|
103
|
+
failure {
|
|
104
|
+
error 'The "Run Tests" stage has failed'
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
stage('Deploy to pypi') {
|
|
109
|
+
when {
|
|
110
|
+
branch 'main'
|
|
111
|
+
}
|
|
112
|
+
environment {
|
|
113
|
+
TWINE_REPOSITORY_URL = "https://upload.pypi.org/legacy/"
|
|
114
|
+
TWINE_USERNAME = "__token__"
|
|
115
|
+
}
|
|
116
|
+
steps {
|
|
117
|
+
withVaultOnAgent(vaultSecrets: vaultSecrets) {
|
|
118
|
+
sh '''
|
|
119
|
+
if [ ! -f venv/bin/activate ]; then
|
|
120
|
+
python3 -m venv venv
|
|
121
|
+
fi
|
|
122
|
+
. venv/bin/activate
|
|
123
|
+
pip3 install wheel && pip3 install -r test-requirements.txt build
|
|
124
|
+
rm -rf build
|
|
125
|
+
rm -rf dist
|
|
126
|
+
rm -rf utf_queue_client.egg-info
|
|
127
|
+
python3 -m build
|
|
128
|
+
|
|
129
|
+
twine upload dist/*
|
|
130
|
+
'''
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: utf-queue-client
|
|
3
|
-
Version: 1.21.
|
|
4
|
-
Summary: No description provided
|
|
5
|
-
Author-email: Joe Savage <joe.savage@silabs.com>
|
|
6
|
-
Keywords: UTF
|
|
7
|
-
Requires-Python: >=3.8
|
|
8
|
-
Requires-Dist: pika>=1.2.0
|
|
9
|
-
Requires-Dist: jsonschema>=3.2.0
|
|
10
|
-
Requires-Dist: msgpack>=1.0.2
|
|
11
|
-
Requires-Dist: pydantic
|
|
12
|
-
Requires-Dist: regex
|
|
13
|
-
Requires-Dist: typing_extensions; python_version < "3.8"
|
|
14
|
-
Requires-Dist: click
|
|
15
|
-
Requires-Dist: certifi>=2020.4
|
|
16
|
-
Requires-Dist: ubai-client>=1.2.0
|
|
17
|
-
Requires-Dist: opentelemetry-distro[otlp]
|
|
18
|
-
Requires-Dist: otel-extensions>=0.1.2
|
|
19
|
-
Requires-Dist: retry>=0.9.2
|
|
20
|
-
Requires-Dist: requests
|
|
21
|
-
Requires-Dist: ndjson~=0.3
|
|
22
|
-
Requires-Dist: urllib3<2.6.0,>=1.25.3
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: utf-queue-client
|
|
3
|
+
Version: 1.21.3b1
|
|
4
|
+
Summary: No description provided
|
|
5
|
+
Author-email: Joe Savage <joe.savage@silabs.com>
|
|
6
|
+
Keywords: UTF
|
|
7
|
+
Requires-Python: >=3.8
|
|
8
|
+
Requires-Dist: pika>=1.2.0
|
|
9
|
+
Requires-Dist: jsonschema>=3.2.0
|
|
10
|
+
Requires-Dist: msgpack>=1.0.2
|
|
11
|
+
Requires-Dist: pydantic
|
|
12
|
+
Requires-Dist: regex
|
|
13
|
+
Requires-Dist: typing_extensions; python_version < "3.8"
|
|
14
|
+
Requires-Dist: click
|
|
15
|
+
Requires-Dist: certifi>=2020.4
|
|
16
|
+
Requires-Dist: ubai-client>=1.2.0
|
|
17
|
+
Requires-Dist: opentelemetry-distro[otlp]
|
|
18
|
+
Requires-Dist: otel-extensions>=0.1.2
|
|
19
|
+
Requires-Dist: retry>=0.9.2
|
|
20
|
+
Requires-Dist: requests
|
|
21
|
+
Requires-Dist: ndjson~=0.3
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import logging
|
|
2
|
-
|
|
3
|
-
import msgpack
|
|
4
|
-
|
|
5
|
-
from utf_queue_client.clients.async_consumer import LocalRaspiSqaTestResultConsumer
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
def message_handler(body: bytes):
|
|
9
|
-
logger = logging.getLogger("main")
|
|
10
|
-
data = msgpack.loads(body)
|
|
11
|
-
logger.info(f"message received: {data}")
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
def main():
|
|
15
|
-
consumer = LocalRaspiSqaTestResultConsumer("10.4.1.107", message_handler)
|
|
16
|
-
consumer.run()
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if __name__ == "__main__":
|
|
20
|
-
main()
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
import msgpack
|
|
4
|
+
|
|
5
|
+
from utf_queue_client.clients.async_consumer import LocalRaspiSqaTestResultConsumer
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def message_handler(body: bytes):
|
|
9
|
+
logger = logging.getLogger("main")
|
|
10
|
+
data = msgpack.loads(body)
|
|
11
|
+
logger.info(f"message received: {data}")
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def main():
|
|
15
|
+
consumer = LocalRaspiSqaTestResultConsumer("10.4.1.107", message_handler)
|
|
16
|
+
consumer.run()
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
if __name__ == "__main__":
|
|
20
|
+
main()
|