cherrypy-foundation 1.0.0a16__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.
Files changed (151) hide show
  1. cherrypy_foundation-1.0.0a16/.gitignore +10 -0
  2. cherrypy_foundation-1.0.0a16/.gitlab-ci.yml +141 -0
  3. cherrypy_foundation-1.0.0a16/LICENSE.md +674 -0
  4. cherrypy_foundation-1.0.0a16/PKG-INFO +59 -0
  5. cherrypy_foundation-1.0.0a16/README.md +18 -0
  6. cherrypy_foundation-1.0.0a16/debian/TODO +2 -0
  7. cherrypy_foundation-1.0.0a16/debian/changelog +5 -0
  8. cherrypy_foundation-1.0.0a16/debian/control +63 -0
  9. cherrypy_foundation-1.0.0a16/debian/copyright +27 -0
  10. cherrypy_foundation-1.0.0a16/debian/python3-cherrypy-foundation.docs +1 -0
  11. cherrypy_foundation-1.0.0a16/debian/python3-cherrypy-foundation.links +0 -0
  12. cherrypy_foundation-1.0.0a16/debian/rules +31 -0
  13. cherrypy_foundation-1.0.0a16/debian/source/format +1 -0
  14. cherrypy_foundation-1.0.0a16/debian/upstream/metadata +5 -0
  15. cherrypy_foundation-1.0.0a16/pyproject.toml +62 -0
  16. cherrypy_foundation-1.0.0a16/setup.cfg +4 -0
  17. cherrypy_foundation-1.0.0a16/sonar-project.properties +2 -0
  18. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/__init__.py +0 -0
  19. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/ColorModes.jinja +70 -0
  20. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Datatable.css +47 -0
  21. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Datatable.jinja +63 -0
  22. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Datatable.js +358 -0
  23. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Field.css +10 -0
  24. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Field.jinja +66 -0
  25. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Field.js +56 -0
  26. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Fields.jinja +4 -0
  27. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Flash.jinja +13 -0
  28. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Icon.jinja +3 -0
  29. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/LocaleSelection.jinja +13 -0
  30. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/LocaleSelection.js +26 -0
  31. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/SideBySideMultiSelect.css +25 -0
  32. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/SideBySideMultiSelect.jinja +9 -0
  33. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/SideBySideMultiSelect.js +9 -0
  34. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Typeahead.css +55 -0
  35. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Typeahead.jinja +106 -0
  36. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/Typeahead.js +8 -0
  37. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/__init__.py +51 -0
  38. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/tests/__init__.py +0 -0
  39. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/tests/test_static.py +90 -0
  40. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.css +2106 -0
  41. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap-icons/bootstrap-icons.min.css +5 -0
  42. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff +0 -0
  43. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap-icons/fonts/bootstrap-icons.woff2 +0 -0
  44. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css +9262 -0
  45. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.css.map +95 -0
  46. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css +6 -0
  47. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/css/bootstrap.min.css.map +7 -0
  48. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js +4846 -0
  49. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.js.map +1 -0
  50. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js +7 -0
  51. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/js/bootstrap.min.js.map +7 -0
  52. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/bootstrap5/js/color-modes.js +80 -0
  53. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.css +849 -0
  54. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/css/dataTables.dataTables.min.css +1 -0
  55. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc.png +0 -0
  56. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/images/sort_asc_disabled.png +0 -0
  57. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/images/sort_both.png +0 -0
  58. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc.png +0 -0
  59. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/images/sort_desc_disabled.png +0 -0
  60. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.js +14073 -0
  61. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables/js/dataTables.min.js +4 -0
  62. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.css +556 -0
  63. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/css/buttons.dataTables.min.css +1 -0
  64. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.js +1700 -0
  65. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/buttons.html5.min.js +8 -0
  66. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.js +2944 -0
  67. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Buttons/js/dataTables.buttons.min.js +4 -0
  68. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.css +13 -0
  69. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/css/fixedHeader.dataTables.min.css +1 -0
  70. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.js +1202 -0
  71. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/FixedHeader/js/dataTables.fixedHeader.min.js +4 -0
  72. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.js +11577 -0
  73. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/JSZip/jszip.min.js +13 -0
  74. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.css +194 -0
  75. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/css/responsive.dataTables.min.css +1 -0
  76. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.js +1861 -0
  77. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/Responsive/js/dataTables.responsive.min.js +4 -0
  78. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.js +75023 -0
  79. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/pdfmake.min.js +3 -0
  80. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/pdfmake/build/vfs_fonts.js +6 -0
  81. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.css +53 -0
  82. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/css/rowGroup.dataTables.min.css +1 -0
  83. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.js +485 -0
  84. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/datatables-extensions/rowgroup/js/dataTables.rowGroup.min.js +4 -0
  85. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/jquery/jquery.min.js +2 -0
  86. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/multi/LICENSE +7 -0
  87. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/multi/README.md +109 -0
  88. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/multi/multi.css +95 -0
  89. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/multi/multi.js +328 -0
  90. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/popper/popper.js +1825 -0
  91. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/popper/popper.min.js +6 -0
  92. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.css +1 -0
  93. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/components/vendor/typeahead/jquery.typeahead.min.js +10 -0
  94. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/error_page.py +94 -0
  95. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/flash.py +48 -0
  96. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/form.py +119 -0
  97. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/logging.py +103 -0
  98. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/passwd.py +65 -0
  99. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/__init__.py +0 -0
  100. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/db.py +286 -0
  101. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/ldap.py +257 -0
  102. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/restapi.py +74 -0
  103. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/scheduler.py +287 -0
  104. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/smtp.py +217 -0
  105. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/__init__.py +0 -0
  106. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/test_db.py +118 -0
  107. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/test_ldap.py +451 -0
  108. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/test_scheduler.py +100 -0
  109. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/test_scheduler_db.py +107 -0
  110. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/plugins/tests/test_smtp.py +110 -0
  111. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/__init__.py +72 -0
  112. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/templates/test_flash.html +9 -0
  113. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/templates/test_form.html +16 -0
  114. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/templates/test_url.html +15 -0
  115. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/test_error_page.py +78 -0
  116. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/test_flash.py +61 -0
  117. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/test_form.py +148 -0
  118. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/test_passwd.py +51 -0
  119. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tests/test_url.py +161 -0
  120. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/__init__.py +0 -0
  121. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/auth.py +259 -0
  122. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/auth_mfa.py +245 -0
  123. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/i18n.py +529 -0
  124. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/jinja2.py +158 -0
  125. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/ratelimit.py +251 -0
  126. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/secure_headers.py +119 -0
  127. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/sessions_timeout.py +165 -0
  128. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/__init__.py +0 -0
  129. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/components/Button.jinja +2 -0
  130. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/locales/de/LC_MESSAGES/messages.mo +0 -0
  131. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/locales/de/LC_MESSAGES/messages.po +15 -0
  132. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.mo +0 -0
  133. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/locales/fr/LC_MESSAGES/messages.po +15 -0
  134. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/locales/messages.pot +2 -0
  135. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/templates/test_jinja2.html +11 -0
  136. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/templates/test_jinjax.html +9 -0
  137. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/templates/test_jinjax_i18n.html +22 -0
  138. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_auth.py +93 -0
  139. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_auth_mfa.py +367 -0
  140. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_i18n.py +247 -0
  141. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_jinja2.py +153 -0
  142. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_ratelimit.py +109 -0
  143. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/tools/tests/test_secure_headers.py +200 -0
  144. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/url.py +66 -0
  145. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation/widgets.py +48 -0
  146. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation.egg-info/PKG-INFO +59 -0
  147. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation.egg-info/SOURCES.txt +149 -0
  148. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation.egg-info/dependency_links.txt +1 -0
  149. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation.egg-info/requires.txt +28 -0
  150. cherrypy_foundation-1.0.0a16/src/cherrypy_foundation.egg-info/top_level.txt +1 -0
  151. cherrypy_foundation-1.0.0a16/tox.ini +79 -0
@@ -0,0 +1,10 @@
1
+ *.egg-info
2
+ .coverage
3
+ .tox
4
+ .venv
5
+ .vscode
6
+ __pycache__
7
+ coverage.xml
8
+ pytestdebug.log
9
+ xunit
10
+ xunit.xml
@@ -0,0 +1,141 @@
1
+ image: python:3.13
2
+
3
+ variables:
4
+ CONTAINER_IMAGE: ${CI_PROJECT_PATH}:${CI_COMMIT_SHORT_SHA}
5
+
6
+ stages:
7
+ - test
8
+ - package
9
+ - publish
10
+
11
+ .tox: &tox
12
+ script:
13
+ - pip install tox
14
+ - tox -e ${TOXENV:-$CI_JOB_NAME}
15
+ stage: test
16
+
17
+ black:
18
+ <<: *tox
19
+
20
+ flake8:
21
+ <<: *tox
22
+
23
+ isort:
24
+ <<: *tox
25
+
26
+ djlint:
27
+ <<: *tox
28
+
29
+ py3:
30
+ <<: *tox
31
+ artifacts:
32
+ paths:
33
+ - coverage.xml
34
+ - xunit.xml
35
+
36
+ selenium:
37
+ <<: *tox
38
+ before_script:
39
+ - apt update && apt -y --no-install-recommends install xvfb xauth chromium-driver
40
+ artifacts:
41
+ paths:
42
+ - coverage-selenium.xml
43
+ - xunit-selenium.xml
44
+
45
+ trixie:
46
+ <<: *tox
47
+
48
+ package:py3:
49
+ stage: package
50
+ needs: []
51
+ script:
52
+ - pip3 install wheel build
53
+ - python -m build
54
+ dependencies: []
55
+ artifacts:
56
+ paths:
57
+ - dist/*.whl
58
+ - dist/*.tar.gz
59
+ expire_in: 1 day
60
+
61
+ package:deb:
62
+ stage: package
63
+ needs: []
64
+ image: buildpack-deps:$DIST
65
+ parallel:
66
+ matrix:
67
+ - DIST: trixie
68
+ - DIST: trixie
69
+ DEB_BUILD_PROFILES: nocheck
70
+ script: |
71
+ set -x
72
+ set -e
73
+ apt update
74
+ apt -y --no-install-recommends install devscripts lintian
75
+ apt build-dep -y .
76
+ export DEBEMAIL=$CI_COMMIT_AUTHOR
77
+ dch -v "$(python3 -m setuptools_scm)" "automated build"
78
+ dpkg-buildpackage -b
79
+ lintian
80
+ mkdir -p ./dist/$DIST
81
+ mv ../*.deb ./dist/$DIST/
82
+ artifacts:
83
+ paths:
84
+ - ./dist/*
85
+
86
+ publish:sonar:
87
+ allow_failure: true
88
+ image: sonarsource/sonar-scanner-cli
89
+ needs:
90
+ - py3
91
+ - selenium
92
+ script:
93
+ - sonar-scanner -X -Dsonar.python.coverage.reportPaths=coverage*.xml -Dsonar.python.xunit.reportPaths=xunit*.xml -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_TOKEN -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.projectVersion=$(git describe) -Dsonar.qualitygate.wait=true
94
+ stage: publish
95
+ variables:
96
+ SONAR_PROJECT_BASE_DIR: "${CI_PROJECT_DIR}"
97
+
98
+ publish:wheel:
99
+ stage: publish
100
+ only:
101
+ variables:
102
+ - $NEXUS_USR
103
+ - $NEXUS_PWD
104
+ - $NEXUS_PYPI_URL
105
+ needs:
106
+ - package:py3
107
+ script: |
108
+ set -x
109
+ # Publish wheel
110
+ pip3 install wheel twine readme_renderer[md] --upgrade
111
+ LANG="C.UTF-8" python3 -m readme_renderer README.md -o /tmp/README.html
112
+ twine upload dist/*.whl dist/*.tar.gz -u $NEXUS_USR -p $NEXUS_PWD --repository-url $NEXUS_PYPI_URL
113
+ if [ ! -z "$CI_COMMIT_TAG" ]; then
114
+ twine upload dist/*.whl dist/*.tar.gz -u $PYPI_USR -p $PYPI_PWD
115
+ fi
116
+
117
+ publish:deb:
118
+ needs:
119
+ - package:deb
120
+ only:
121
+ variables:
122
+ - $NEXUS_USR
123
+ - $NEXUS_PWD
124
+ parallel:
125
+ matrix:
126
+ - DIST: trixie
127
+ script: |
128
+ set -e
129
+ set -x
130
+ if [[ "$CI_COMMIT_TAG" == *.+([0-9]) ]]; then
131
+ APT_URL="$NEXUS_URL/repository/apt-release-${DIST}/"
132
+ APT_COMPONENT=${DIST}
133
+ else
134
+ APT_URL="$NEXUS_URL/repository/apt-dev-${DIST}/"
135
+ APT_COMPONENT=${DIST}-dev
136
+ fi
137
+ export FILE=$(ls -1 ./dist/$DIST/python3-cherrypy-foundation*.deb)
138
+ curl --fail -u "$NEXUS_USR:$NEXUS_PWD" -H "Content-Type: multipart/form-data" --data-binary "@$FILE" "$APT_URL"
139
+ sleep 2
140
+ curl --fail ${APT_URL}dists/$APT_COMPONENT/main/binary-all/Packages | grep "$(basename $FILE)"
141
+ stage: publish