coffea-casa 2021.5.6.post1__tar.gz → 2025.11.25.2__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 (210) hide show
  1. coffea_casa-2025.11.25.2/.gitattributes +1 -0
  2. coffea_casa-2025.11.25.2/.github/dependabot.yml +11 -0
  3. coffea_casa-2025.11.25.2/.github/workflows/autotag.yaml +57 -0
  4. coffea_casa-2025.11.25.2/.github/workflows/charts-lint.yml_ +36 -0
  5. coffea_casa-2025.11.25.2/.github/workflows/charts-publish.yml_ +43 -0
  6. coffea_casa-2025.11.25.2/.github/workflows/charts-test-k3d.yaml_ +142 -0
  7. coffea_casa-2025.11.25.2/.github/workflows/charts-test-minikube.yaml_ +112 -0
  8. coffea_casa-2025.11.25.2/.github/workflows/dockercd-dev.yml +86 -0
  9. coffea_casa-2025.11.25.2/.github/workflows/dockerci-dev.yml +63 -0
  10. coffea_casa-2025.11.25.2/.github/workflows/pypi-ci.yml +68 -0
  11. coffea_casa-2025.11.25.2/.github/workflows/pypi-tag-deploy.yml +34 -0
  12. coffea_casa-2025.11.25.2/.github/workflows/update_docker.yml +64 -0
  13. coffea_casa-2025.11.25.2/.gitignore +162 -0
  14. coffea_casa-2025.11.25.2/.gitmodules +3 -0
  15. coffea_casa-2025.11.25.2/.pre-commit-config.yaml +72 -0
  16. coffea_casa-2025.11.25.2/.readthedocs.yml +18 -0
  17. coffea_casa-2025.11.25.2/MAINTAINERS +1 -0
  18. coffea_casa-2025.11.25.2/MANIFEST.in +10 -0
  19. coffea_casa-2025.11.25.2/PKG-INFO +153 -0
  20. {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/README.md +43 -13
  21. coffea_casa-2025.11.25.2/charts/chartpress.yaml +73 -0
  22. coffea_casa-2025.11.25.2/charts/coffea-casa/.helmignore +23 -0
  23. coffea_casa-2025.11.25.2/charts/coffea-casa/Chart.yaml +28 -0
  24. coffea_casa-2025.11.25.2/charts/coffea-casa/README.md +76 -0
  25. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressroute.yaml +196 -0
  26. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressroutetcp.yaml +158 -0
  27. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressrouteudp.yaml +82 -0
  28. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/middlewares.yaml +564 -0
  29. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/middlewarestcp.yaml +57 -0
  30. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/serverstransports.yaml +103 -0
  31. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/tlsoptions.yaml +90 -0
  32. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/tlsstores.yaml +62 -0
  33. coffea_casa-2025.11.25.2/charts/coffea-casa/crds/traefikservices.yaml +268 -0
  34. coffea_casa-2025.11.25.2/charts/coffea-casa/docs/DEVNOTES.md +61 -0
  35. coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/auth.py +279 -0
  36. coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-coffea.py +57 -0
  37. coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-generic.py +272 -0
  38. coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-oauth2-14.2.0.py +462 -0
  39. coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/secret_creation_hook.py +238 -0
  40. coffea_casa-2025.11.25.2/charts/coffea-casa/pebble-config.yaml +11 -0
  41. coffea_casa-2025.11.25.2/charts/coffea-casa/schema.yaml +2919 -0
  42. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/NOTES.txt +23 -0
  43. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/_helpers.tpl +83 -0
  44. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/af-secrets.yaml +26 -0
  45. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/hub-extra-config-d.yaml +10 -0
  46. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/hub-extra-rbac.yaml +40 -0
  47. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/deployment.yaml +80 -0
  48. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/service.yaml +35 -0
  49. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/traefik-dashboard.yaml +19 -0
  50. coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/traefik-rbac.yaml +76 -0
  51. coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/login.html +109 -0
  52. coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/logo.png +0 -0
  53. coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/logo.png.bin +0 -0
  54. coffea_casa-2025.11.25.2/charts/coffea-casa/values-prod.yaml +211 -0
  55. coffea_casa-2025.11.25.2/charts/coffea-casa/values.yaml +253 -0
  56. coffea_casa-2025.11.25.2/charts/dev-requirements.txt +16 -0
  57. coffea_casa-2025.11.25.2/charts/requirements.txt +6 -0
  58. coffea_casa-2025.11.25.2/ci/common +83 -0
  59. coffea_casa-2025.11.25.2/coffea_casa/__init__.py +13 -0
  60. coffea_casa-2025.11.25.2/coffea_casa/_version.py +34 -0
  61. coffea_casa-2025.11.25.2/coffea_casa/_version.pyi +4 -0
  62. {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/coffea_casa/coffea_casa.py +87 -18
  63. coffea_casa-2025.11.25.2/coffea_casa/jobqueue-coffea-casa.yaml +33 -0
  64. coffea_casa-2025.11.25.2/coffea_casa/plugin.py +130 -0
  65. coffea_casa-2025.11.25.2/docker/Dockerfile.cc-analysis-alma9 +227 -0
  66. coffea_casa-2025.11.25.2/docker/Dockerfile.cc-analysis-combine-alma9 +235 -0
  67. coffea_casa-2025.11.25.2/docker/Dockerfile.cc-dask-alma9 +335 -0
  68. coffea_casa-2025.11.25.2/docker/Dockerfile.cc-dask-combine-alma9 +344 -0
  69. coffea_casa-2025.11.25.2/docker/README.IDAP.md +12 -0
  70. coffea_casa-2025.11.25.2/docker/README.md +125 -0
  71. coffea_casa-2025.11.25.2/docker/certs/hcc-flatiron.pem +18 -0
  72. coffea_casa-2025.11.25.2/docker/certs/isrgrootx1.pem +31 -0
  73. coffea_casa-2025.11.25.2/docker/certs/lets-encrypt-r3.pem +30 -0
  74. coffea_casa-2025.11.25.2/docker/certs/lets-encrypt-r4.pem +30 -0
  75. coffea_casa-2025.11.25.2/docker/condor/condor_config +75 -0
  76. coffea_casa-2025.11.25.2/docker/condor/config.d/99-coffea-condor-master-config +11 -0
  77. coffea_casa-2025.11.25.2/docker/dask/dask.yaml +32 -0
  78. coffea_casa-2025.11.25.2/docker/dask/dask_tls.yaml +15 -0
  79. coffea_casa-2025.11.25.2/docker/dask/distributed/0001-Patch-from-bbockelman-adaptive-scaling.patch +16 -0
  80. coffea_casa-2025.11.25.2/docker/dask/distributed/0002-Allow-scheduler-to-preserve-worker-hostnames.patch +72 -0
  81. coffea_casa-2025.11.25.2/docker/dask/distributed/0003-Activate-patch.patch +12 -0
  82. coffea_casa-2025.11.25.2/docker/dask/distributed/0004-Add-possibility-to-setup-external_adress-for-schedul.patch +45 -0
  83. coffea_casa-2025.11.25.2/docker/dask/distributed/0005-Add-nanny-patch.patch +83 -0
  84. coffea_casa-2025.11.25.2/docker/dask/jobqueue-coffea-casa.yaml +33 -0
  85. coffea_casa-2025.11.25.2/docker/dask/labextension.yaml +17 -0
  86. coffea_casa-2025.11.25.2/docker/jupyterhub/fix-permissions +35 -0
  87. coffea_casa-2025.11.25.2/docker/jupyterhub/jupyter_notebook_config.py +64 -0
  88. coffea_casa-2025.11.25.2/docker/jupyterhub/jupyterlab-workspace.json +95 -0
  89. coffea_casa-2025.11.25.2/docker/jupyterhub/start-notebook.sh +22 -0
  90. coffea_casa-2025.11.25.2/docker/jupyterhub/start-singleuser.sh +41 -0
  91. coffea_casa-2025.11.25.2/docker/jupyterhub/start.sh +154 -0
  92. coffea_casa-2025.11.25.2/docker/k8s-worker/supervisord.conf +79 -0
  93. coffea_casa-2025.11.25.2/docker/prepare-env/prepare-env-cc-analysis.sh +174 -0
  94. coffea_casa-2025.11.25.2/docker/prepare-env/prepare-env-cc.sh +84 -0
  95. coffea_casa-2025.11.25.2/docs/Makefile +20 -0
  96. coffea_casa-2025.11.25.2/docs/_static/atlas-auth.web.cern.ch_login.png +0 -0
  97. coffea_casa-2025.11.25.2/docs/_static/browser.png +0 -0
  98. coffea_casa-2025.11.25.2/docs/_static/cc-cilogon.png +0 -0
  99. coffea_casa-2025.11.25.2/docs/_static/cc-email.png +0 -0
  100. coffea_casa-2025.11.25.2/docs/_static/cc-enter.png +0 -0
  101. coffea_casa-2025.11.25.2/docs/_static/cc-invitation.png +0 -0
  102. coffea_casa-2025.11.25.2/docs/_static/cc-login.png +0 -0
  103. coffea_casa-2025.11.25.2/docs/_static/cc-reg1.png +0 -0
  104. coffea_casa-2025.11.25.2/docs/_static/cc-reg2.png +0 -0
  105. coffea_casa-2025.11.25.2/docs/_static/cc-request.png +0 -0
  106. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-authz-approval.png +0 -0
  107. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-authz.png +0 -0
  108. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-connection_success.png +0 -0
  109. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard.png +0 -0
  110. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard_taskstream.png +0 -0
  111. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard_workers.png +0 -0
  112. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-draft.png +0 -0
  113. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-enter.png +0 -0
  114. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-image.png +0 -0
  115. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-labext.png +0 -0
  116. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-newlauncher.png +0 -0
  117. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-newtab.png +0 -0
  118. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-performance_report.png +0 -0
  119. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-pytest.png +0 -0
  120. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-resources.png +0 -0
  121. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-server_stop.png +0 -0
  122. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-start.png +0 -0
  123. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-startr.png +0 -0
  124. coffea_casa-2025.11.25.2/docs/_static/coffea-casa-tutorials.png +0 -0
  125. coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_hub_login.png +0 -0
  126. coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_hub_spawn.png +0 -0
  127. coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_clusters.png +0 -0
  128. coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_clusters.scale.png +0 -0
  129. coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_fengping.hu.png +0 -0
  130. coffea_casa-2025.11.25.2/docs/_static/dask-labextention-address.png +0 -0
  131. coffea_casa-2025.11.25.2/docs/_static/example1-plot.png +0 -0
  132. coffea_casa-2025.11.25.2/docs/_static/examplezpeak-plot.png +0 -0
  133. coffea_casa-2025.11.25.2/docs/_static/git.png +0 -0
  134. coffea_casa-2025.11.25.2/docs/_static/git2.png +0 -0
  135. coffea_casa-2025.11.25.2/docs/_static/servicex-coffea-workflow.png +0 -0
  136. coffea_casa-2025.11.25.2/docs/_static/servicex-dashboard.png +0 -0
  137. coffea_casa-2025.11.25.2/docs/_static/servicex-profile.png +0 -0
  138. coffea_casa-2025.11.25.2/docs/_static/servicex-registration.png +0 -0
  139. coffea_casa-2025.11.25.2/docs/cc_api.rst +9 -0
  140. coffea_casa-2025.11.25.2/docs/cc_condor.rst +20 -0
  141. coffea_casa-2025.11.25.2/docs/cc_configuration.rst +86 -0
  142. coffea_casa-2025.11.25.2/docs/cc_deployment.rst +2 -0
  143. coffea_casa-2025.11.25.2/docs/cc_issues.rst +32 -0
  144. coffea_casa-2025.11.25.2/docs/cc_metrics.rst +79 -0
  145. coffea_casa-2025.11.25.2/docs/cc_packages.rst +49 -0
  146. coffea_casa-2025.11.25.2/docs/cc_setup.rst +112 -0
  147. coffea_casa-2025.11.25.2/docs/cc_support.rst +22 -0
  148. coffea_casa-2025.11.25.2/docs/cc_user.rst +483 -0
  149. coffea_casa-2025.11.25.2/docs/cc_user_registration.rst +7 -0
  150. coffea_casa-2025.11.25.2/docs/conf.py +69 -0
  151. coffea_casa-2025.11.25.2/docs/gallery/agc_schema.py +35 -0
  152. coffea_casa-2025.11.25.2/docs/gallery/analysis-casa.ipynb +1559 -0
  153. coffea_casa-2025.11.25.2/docs/gallery/analysis_tutorial.ipynb +847 -0
  154. coffea_casa-2025.11.25.2/docs/gallery/coffea-casa-template.ipynb +284 -0
  155. coffea_casa-2025.11.25.2/docs/gallery/coffea_analysis.ipynb +1759 -0
  156. coffea_casa-2025.11.25.2/docs/gallery/example1.ipynb +203 -0
  157. coffea_casa-2025.11.25.2/docs/gallery/example2.ipynb +190 -0
  158. coffea_casa-2025.11.25.2/docs/gallery/example3.ipynb +202 -0
  159. coffea_casa-2025.11.25.2/docs/gallery/example4.ipynb +182 -0
  160. coffea_casa-2025.11.25.2/docs/gallery/example5.ipynb +215 -0
  161. coffea_casa-2025.11.25.2/docs/gallery/example6.ipynb +224 -0
  162. coffea_casa-2025.11.25.2/docs/gallery/example7.ipynb +239 -0
  163. coffea_casa-2025.11.25.2/docs/gallery/example8.ipynb +290 -0
  164. coffea_casa-2025.11.25.2/docs/gallery/ttbar_HT.ipynb +299 -0
  165. coffea_casa-2025.11.25.2/docs/gallery/utilities/columnar.png +0 -0
  166. coffea_casa-2025.11.25.2/docs/gallery/utilities/processor.png +0 -0
  167. coffea_casa-2025.11.25.2/docs/gallery/zpeak_example.ipynb +155 -0
  168. coffea_casa-2025.11.25.2/docs/index.rst +106 -0
  169. coffea_casa-2025.11.25.2/docs/make.bat +35 -0
  170. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_B&W_500X500.png +0 -0
  171. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_IconOnlyI_B&W_500X500.png +0 -0
  172. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_InverseB&W_500X500.png +0 -0
  173. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_1080X1080_TransparentBG.png +0 -0
  174. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_TransparentBG.png +0 -0
  175. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_WhiteBG.png +0 -0
  176. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_IconOnly_Brown_500X500_TransparentBG.png +0 -0
  177. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_TextOnly_1080X182_Brown.png +0 -0
  178. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_IconOnly_Purple_500X500_TransparentBG.png +0 -0
  179. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_1080X1080_TransparentBG.png +0 -0
  180. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_TransparentBG.png +0 -0
  181. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_WhiteBG.png +0 -0
  182. coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_TextOnly_1080X182_Purple.png +0 -0
  183. coffea_casa-2025.11.25.2/pyproject.toml +94 -0
  184. coffea_casa-2025.11.25.2/requirements.txt +2 -0
  185. coffea_casa-2025.11.25.2/scripts-extra/submit_vine_workers_to_condor +53 -0
  186. coffea_casa-2025.11.25.2/tests/ca.pem +31 -0
  187. coffea_casa-2025.11.25.2/tests/key.pem +52 -0
  188. coffea_casa-2025.11.25.2/tests/test_coffeacasa.py +119 -0
  189. coffea_casa-2025.11.25.2/tests/test_coffeacasa_args.py +59 -0
  190. coffea_casa-2025.11.25.2/tests/test_config.py +7 -0
  191. coffea_casa-2025.11.25.2/tests-charts/conftest.py +161 -0
  192. coffea_casa-2025.11.25.2/tests-charts/test_hub.py +121 -0
  193. coffea_casa-2025.11.25.2/tools/generate-json-schema.py +66 -0
  194. coffea_casa-2021.5.6.post1/MANIFEST.in +0 -13
  195. coffea_casa-2021.5.6.post1/PKG-INFO +0 -92
  196. coffea_casa-2021.5.6.post1/coffea_casa/__init__.py +0 -21
  197. coffea_casa-2021.5.6.post1/coffea_casa/_version.py +0 -21
  198. coffea_casa-2021.5.6.post1/coffea_casa/jobqueue-coffea-casa.yaml +0 -25
  199. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/PKG-INFO +0 -92
  200. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/SOURCES.txt +0 -18
  201. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/dependency_links.txt +0 -1
  202. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/not-zip-safe +0 -1
  203. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/requires.txt +0 -30
  204. coffea_casa-2021.5.6.post1/coffea_casa.egg-info/top_level.txt +0 -1
  205. coffea_casa-2021.5.6.post1/setup.cfg +0 -36
  206. coffea_casa-2021.5.6.post1/setup.py +0 -63
  207. coffea_casa-2021.5.6.post1/versioneer.py +0 -1822
  208. {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/LICENSE +0 -0
  209. {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/coffea_casa/config.py +0 -0
  210. /coffea_casa-2021.5.6.post1/requirements.txt → /coffea_casa-2025.11.25.2/tools/values.lint-validate.yaml +0 -0
@@ -0,0 +1 @@
1
+ coffea_casa/_version.py export-subst
@@ -0,0 +1,11 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "docker"
9
+ directory: "/docker/"
10
+ schedule:
11
+ interval: "daily"
@@ -0,0 +1,57 @@
1
+ name: Auto CalVer Tag on Master Push
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+
8
+ jobs:
9
+ calver-tag:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout code
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set CalVer date
17
+ id: calver
18
+ run: |
19
+ # Get current date in YYYY.MM.DD format
20
+ date_tag=$(date +'%Y.%m.%d')
21
+ echo "base_tag=$date_tag" >> $GITHUB_OUTPUT
22
+
23
+ - name: Fetch all tags
24
+ run: |
25
+ git fetch --tags
26
+
27
+ - name: Determine next CalVer tag
28
+ id: next_tag
29
+ run: |
30
+ base=${{ steps.calver.outputs.base_tag }}
31
+ # List all existing tags that match today's date
32
+ existing=$(git tag --list "${base}*")
33
+
34
+ if ! echo "$existing" | grep -q "^$base$"; then
35
+ # No base tag exists yet, use the base tag (no suffix)
36
+ new_tag="$base"
37
+ else
38
+ # Base tag exists, find the highest numbered suffix
39
+ max=1 # because base tag is already used
40
+ for tag in $existing; do
41
+ suffix=$(echo $tag | sed -n "s/^$base\.//p")
42
+ if [[ "$suffix" =~ ^[0-9]+$ && "$suffix" -gt "$max" ]]; then
43
+ max=$suffix
44
+ fi
45
+ done
46
+ new_tag="$base.$((max + 1))"
47
+ fi
48
+
49
+ echo "New tag: $new_tag"
50
+ echo "new_tag=$new_tag" >> $GITHUB_OUTPUT
51
+
52
+ - name: Create and push new tag
53
+ run: |
54
+ git config user.name "github-actions"
55
+ git config user.email "github-actions@github.com"
56
+ git tag ${{ steps.next_tag.outputs.new_tag }}
57
+ git push origin ${{ steps.next_tag.outputs.new_tag }}
@@ -0,0 +1,36 @@
1
+ name: Lint and Test Charts
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ jobs:
7
+ lint-test:
8
+ runs-on: ubuntu-latest
9
+ steps:
10
+ - name: Checkout
11
+ uses: actions/checkout@v2
12
+ with:
13
+ fetch-depth: 0
14
+
15
+ - name: Set up Helm
16
+ uses: azure/setup-helm@v1
17
+ with:
18
+ version: v3.5.3
19
+
20
+ - uses: actions/setup-python@v2
21
+ with:
22
+ python-version: 3.7
23
+
24
+ - name: Set up chart-testing
25
+ uses: helm/chart-testing-action@v2.1.0
26
+
27
+ - name: Run chart-testing (list-changed)
28
+ id: list-changed
29
+ run: |
30
+ changed=$(ct list-changed)
31
+ if [[ -n "$changed" ]]; then
32
+ echo "::set-output name=changed::true"
33
+ fi
34
+
35
+ - name: Run chart-testing (lint)
36
+ run: ct lint --check-version-increment=false --validate-maintainers=false
@@ -0,0 +1,43 @@
1
+ # This is a GitHub workflow defining a set of jobs with a set of steps. ref:
2
+ # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions
3
+ #
4
+ # This workflow package and publishes the Helm charts to Helm repository living
5
+ # inside the gh-pages branch of this git repository.
6
+ #
7
+ # Create a tag (on devel) or create release
8
+ name: Publish charts
9
+
10
+ on:
11
+ push:
12
+ tags: ["*"]
13
+
14
+ defaults:
15
+ run:
16
+ shell: bash
17
+
18
+ jobs:
19
+ release:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - name: Checkout
23
+ uses: actions/checkout@v2
24
+ with:
25
+ fetch-depth: 0
26
+
27
+ - name: Configure Git
28
+ run: |
29
+ git config user.name "$GITHUB_ACTOR"
30
+ git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
31
+
32
+ - name: Install Helm
33
+ uses: azure/setup-helm@v1
34
+ with:
35
+ version: v3.4.0
36
+
37
+ - name: Run chart-releaser
38
+ uses: helm/chart-releaser-action@v1.2.1
39
+ env:
40
+ CR_TOKEN: "${{ secrets.GH_TOKEN }}"
41
+ with:
42
+ charts_dir: charts
43
+ charts_repo_url: https://coffeateam.github.io/coffea-casa/
@@ -0,0 +1,142 @@
1
+ # This is a GitHub workflow defining a set of jobs with a set of steps.
2
+ # ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
3
+ #
4
+ name: Test chart
5
+
6
+ # Trigger the workflow's on all PRs and pushes so that other contributors can
7
+ # run tests in their own forks. Avoid triggering these tests on changes to
8
+ # documentation only changes.
9
+ on:
10
+ pull_request:
11
+ paths-ignore:
12
+ - "docs/**"
13
+ - "docs-img/**"
14
+ - "**.md"
15
+ - ".github/workflows/*"
16
+ - "!.github/workflows/charts-test.yaml"
17
+ push:
18
+ paths-ignore:
19
+ - "docs/**"
20
+ - "docs-img/**"
21
+ - "**.md"
22
+ - ".github/workflows/*"
23
+ - "!.github/workflows/charts-test.yaml"
24
+ branches-ignore:
25
+ - "dependabot/**"
26
+ - "pre-commit-ci-update-config"
27
+ - "update-*"
28
+ - "vuln-scan-*"
29
+ workflow_dispatch:
30
+
31
+ jobs:
32
+
33
+ test:
34
+ runs-on: ubuntu-20.04
35
+ timeout-minutes: 20
36
+
37
+ strategy:
38
+ # Keep running even if one variation of the job fail
39
+ fail-fast: false
40
+ matrix:
41
+ # We run this job multiple times with different parameterization
42
+ # specified below, these parameters have no meaning on their own and
43
+ # gain meaning on how job steps use them.
44
+ #
45
+ # k3s-version: https://github.com/rancher/k3s/tags
46
+ # k3s-channel: https://update.k3s.io/v1-release/channels
47
+ include:
48
+ # FIXME: enable when we update jupyterhub version
49
+ # TODO: add more complex matrix
50
+ #- k3s-channel: latest
51
+ # test: install
52
+ #- k3s-channel: stable
53
+ # test: install
54
+ - k3s-channel: v1.20
55
+ test: install
56
+ - k3s-channel: v1.21
57
+ test: install
58
+ - k3s-channel: v1.22
59
+ test: install
60
+ - k3s-channel: v1.23
61
+ test: install
62
+
63
+ steps:
64
+ - uses: actions/checkout@v3
65
+ with:
66
+ # chartpress requires git history to set chart version and image tags
67
+ # correctly
68
+ fetch-depth: 0
69
+
70
+ # Starts a k8s cluster with NetworkPolicy enforcement and installs both
71
+ # kubectl and helm
72
+ #
73
+ # ref: https://github.com/jupyterhub/action-k3s-helm/
74
+ - uses: jupyterhub/action-k3s-helm@v3
75
+ with:
76
+ k3s-channel: ${{ matrix.k3s-channel }}
77
+ metrics-enabled: false
78
+ traefik-enabled: false
79
+ docker-enabled: true
80
+
81
+ - uses: actions/setup-python@v4
82
+ with:
83
+ python-version: "3.9"
84
+
85
+ ## Install a local ACME server to fill the role of Let's Encrypt (LE). We
86
+ ## do this as the HTTP challenge sent out by an ACME server must be able to
87
+ ## reach the ACME client in our autohttps pod.
88
+ #- name: Install local ACME server
89
+ # run: |
90
+ # helm install pebble --repo https://jupyterhub.github.io/helm-chart/ pebble --values ./charts/coffea-casa/pebble-config.yaml
91
+
92
+ # Build our images if needed and update values.yaml with the tags
93
+ #- name: Install and run chartpress
94
+ # run: |
95
+ # pip3 install -r charts/dev-requirements.txt
96
+ # cd charts && chartpress
97
+ # env:
98
+ # DOCKER_BUILDKIT: "1"
99
+
100
+ # Generate values.schema.json from schema.yaml
101
+ #- name: Generate values.schema.json from schema.yaml
102
+ # run: |
103
+ # tools/generate-json-schema.py
104
+
105
+ - name: Await successful startup of Kubernetes workloads
106
+ uses: jupyterhub/action-k8s-await-workloads@v1
107
+ with:
108
+ timeout: 150
109
+ max-restarts: 1
110
+
111
+ - name: "Check if the Helm dependencies are pulled"
112
+ run: |
113
+ cd charts/coffea-casa && helm dependency build
114
+
115
+
116
+ - name: "Install local chart"
117
+ run: |
118
+ helm upgrade --install coffea-casa ./charts/coffea-casa --values charts/coffea-casa/values.yaml
119
+
120
+ - name: "Await local chart"
121
+ uses: jupyterhub/action-k8s-await-workloads@v2
122
+ with:
123
+ timeout: 900
124
+ max-restarts: 1
125
+
126
+ #- name: Await local chart cert acquisition
127
+ # run: |
128
+ # . ./ci/common
129
+ # await_autohttps_tls_cert_acquisition
130
+
131
+ - name: Run tests
132
+ continue-on-error: ${{ matrix.accept-failure == true }}
133
+ run: |
134
+ export HUB_URL=http://localhost:30080
135
+ pytest --verbose --color=yes ./tests-charts
136
+
137
+ # ref: https://github.com/jupyterhub/action-k8s-namespace-report
138
+ - name: Kubernetes namespace report
139
+ uses: jupyterhub/action-k8s-namespace-report@v1
140
+ if: always()
141
+ with:
142
+ important-workloads: deploy/hub deploy/proxy
@@ -0,0 +1,112 @@
1
+ name: Test chart
2
+
3
+ on:
4
+ pull_request:
5
+ paths-ignore:
6
+ - "docs/**"
7
+ - "docs-img/**"
8
+ - "**.md"
9
+ - ".github/workflows/*"
10
+ - "!.github/workflows/charts-test.yaml"
11
+ push:
12
+ paths-ignore:
13
+ - "docs/**"
14
+ - "docs-img/**"
15
+ - "**.md"
16
+ - ".github/workflows/*"
17
+ - "!.github/workflows/charts-test.yaml"
18
+ branches-ignore:
19
+ - "dependabot/**"
20
+ - "pre-commit-ci-update-config"
21
+ - "update-*"
22
+ - "vuln-scan-*"
23
+ workflow_dispatch:
24
+
25
+ jobs:
26
+
27
+ test-local:
28
+ name: Test local chart deployment (minikube)
29
+ timeout-minutes: 90
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - uses: actions/checkout@v3
33
+ with:
34
+ # chartpress requires git history to set chart version and image tags
35
+ # correctly
36
+ fetch-depth: 0
37
+
38
+ - uses: actions/setup-python@v4
39
+ with:
40
+ python-version: "3.9"
41
+
42
+ - uses: azure/setup-helm@v3
43
+ with:
44
+ version: "v3.9.1"
45
+
46
+ - name: Setup Minikube-Kubernetes
47
+ uses: manusa/actions-setup-minikube@v2.7.2
48
+ with:
49
+ minikube version: "v1.28.0"
50
+ kubernetes version: "v1.24.5"
51
+ github token: ${{ secrets.GITHUB_TOKEN }}
52
+ driver: docker
53
+ start args: --ports=127.0.0.1:30080:30080
54
+
55
+ # Build our images if needed and update values.yaml with the tags
56
+ - name: Install and run chartpress
57
+ run: |
58
+ pip install -r charts/dev-requirements.txt
59
+ # eval $(minikube -p minikube docker-env)
60
+ # cd charts && chartpress
61
+ # env:
62
+ # DOCKER_BUILDKIT: "1"
63
+
64
+ # Generate values.schema.json from schema.yaml
65
+ #- name: Generate values.schema.json from schema.yaml
66
+ # run: |
67
+ # tools/generate-json-schema.py
68
+
69
+ - name: "Check if the Helm dependencies are pulled"
70
+ run: |
71
+ cd charts/coffea-casa && helm dependency build
72
+
73
+ - name: "Install local chart"
74
+ run: |
75
+ helm upgrade --install coffea-casa ./charts/coffea-casa --values charts/coffea-casa/values.yaml
76
+
77
+ - name: "Await local chart deployment"
78
+ run: |
79
+ minikube kubectl -- wait --for condition=Available=True --timeout=200s deployment/hub
80
+
81
+ #- name: Await local chart cert acquisition
82
+ # run: |
83
+ # . ./ci/common
84
+ # await_autohttps_tls_cert_acquisition
85
+
86
+ - name: Run tests
87
+ run: |
88
+ export HUB_URL=http://localhost:30080
89
+ pytest --verbose --color=yes ./tests-charts
90
+
91
+ - name: Output some logs in case of failure
92
+ if: ${{ failure() }}
93
+ # add set -x to print commands before executing to make logs reading easier
94
+ run: |
95
+ set -x
96
+ minikube ip
97
+ minikube logs
98
+ minikube kubectl -- get all
99
+ minikube kubectl -- get all -o yaml
100
+ minikube kubectl -- describe pods
101
+ minikube kubectl -- get cm
102
+ minikube kubectl -- get cm -o yaml
103
+ minikube kubectl -- get secrets
104
+ minikube kubectl -- get secrets -o yaml
105
+ minikube kubectl -- get pvc
106
+ minikube kubectl -- get pv
107
+ set +x
108
+
109
+ # Enable tmate debugging of manually-triggered workflows if the input option was provided
110
+ - name: Setup tmate session
111
+ uses: mxschmitt/action-tmate@v3
112
+ if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
@@ -0,0 +1,86 @@
1
+ name: Push tag of docker images
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+ push:
8
+ paths:
9
+ - docker/**
10
+ branches:
11
+ - master
12
+ workflow_dispatch:
13
+
14
+ env:
15
+ PROJECT: 'coffea-casa'
16
+ GITHUB_ACTIONS: 'true'
17
+ REGISTRY: 'hub.opensciencegrid.org'
18
+
19
+ jobs:
20
+ matrix-build:
21
+ strategy:
22
+ fail-fast: false
23
+ matrix:
24
+ image: [cc-dask-alma9, cc-analysis-alma9, cc-dask-combine-alma9, cc-analysis-combine-alma9]
25
+ name: ${{ matrix.image }}
26
+ runs-on: ubuntu-latest
27
+ steps:
28
+
29
+ - name: Identify event type
30
+ run: |
31
+ echo "Triggered by: ${{ github.event_name }}"
32
+
33
+ - name: Generate tags
34
+ id: tags
35
+ env:
36
+ image: ${{ env.REGISTRY }}/coffea-casa/${{ matrix.image }}
37
+ release: ${{ github.event.release.tag_name }}
38
+ GITHUB_EVENT_NAME: ${{ github.event_name }}
39
+ run: |
40
+ if [ "${GITHUB_EVENT_NAME}" == "release" ]; then
41
+ tag="${image}:${release}"
42
+ tags=$tag
43
+ releasetag=$release
44
+ else
45
+ tag="${image}:development"
46
+ tags=$tag
47
+ releasetag="development"
48
+ fi
49
+ echo "tag=$tag"
50
+ echo "tags=$tags"
51
+ echo "releasetag=$releasetag"
52
+
53
+ # Set outputs using the environment file
54
+ echo "tags=$tags" >> "$GITHUB_OUTPUT"
55
+ echo "releasetag=$releasetag" >> "$GITHUB_OUTPUT"
56
+
57
+ - name: Check out code
58
+ uses: actions/checkout@v4
59
+ - name: Set up QEMU
60
+ uses: docker/setup-qemu-action@v2
61
+ - name: Set up Docker Buildx
62
+ id: buildx
63
+ uses: docker/setup-buildx-action@v2
64
+ with:
65
+ version: latest
66
+ driver-opts: network=host
67
+ - name: Login to Harbor Hub
68
+ if: success() && github.event_name != 'pull_request'
69
+ uses: docker/login-action@v2
70
+ with:
71
+ registry: hub.opensciencegrid.org
72
+ username: ${{ secrets.HARBOR_USER }}
73
+ password: ${{ secrets.HARBOR_PASSWORD }}
74
+ - name: Build and push
75
+ uses: docker/build-push-action@v3.0.0
76
+ with:
77
+ context: docker/
78
+ file: docker/Dockerfile.${{ matrix.image }}
79
+ platforms: linux/amd64
80
+ tags: ${{ steps.tags.outputs.tags }}
81
+ push: true
82
+ build-args: |
83
+ TAG=${{ steps.tags.outputs.releasetag }}
84
+ PROJECT=${{ env.PROJECT }}
85
+ GITHUB_ACTIONS=${{ env.GITHUB_ACTIONS }}
86
+ REGISTRY=${{ env.REGISTRY }}
@@ -0,0 +1,63 @@
1
+ name: Test docker images
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - docker/**
7
+ branches:
8
+ - master
9
+ workflow_dispatch:
10
+
11
+ env:
12
+ PROJECT: 'coffea-casa'
13
+ GITHUB_ACTIONS: 'true'
14
+ REGISTRY: 'hub.opensciencegrid.org'
15
+
16
+ jobs:
17
+ matrix-build:
18
+ strategy:
19
+ fail-fast: false
20
+ matrix:
21
+ image: [cc-dask-alma9, cc-analysis-alma9, cc-dask-combine-alma9, cc-analysis-combine-alma9]
22
+ # Keep this line in sync with gh actions @ coffea-dask repo
23
+ # python: [3.8, 3.9, '3.10']
24
+ #exclude:
25
+ # - image: cc7
26
+ # python: 3.8
27
+ name: ${{ matrix.image }}
28
+ runs-on: ubuntu-latest
29
+ steps:
30
+ - name: Fetch current date (with timestamp)
31
+ id: date
32
+ run: |
33
+ echo "::set-output name=date::$(date +"%Y-%m-%d_%H-%M-%S")"
34
+ - name: Check out code
35
+ uses: actions/checkout@v2
36
+ - name: Set up QEMU
37
+ uses: docker/setup-qemu-action@v2
38
+ - name: Set up Docker Buildx
39
+ id: buildx
40
+ uses: docker/setup-buildx-action@v2
41
+ with:
42
+ version: latest
43
+ driver-opts: network=host
44
+ - name: Login to Harbor Hub
45
+ if: success() && github.event_name != 'pull_request'
46
+ uses: docker/login-action@v2
47
+ with:
48
+ registry: hub.opensciencegrid.org
49
+ username: ${{ secrets.HARBOR_USER }}
50
+ password: ${{ secrets.HARBOR_PASSWORD }}
51
+ - name: Build and push
52
+ uses: docker/build-push-action@v3.0.0
53
+ with:
54
+ context: docker/
55
+ file: docker/Dockerfile.${{ matrix.image }}
56
+ push: ${{ github.event_name == 'push' }}
57
+ platforms: linux/amd64
58
+ tags: ${{ env.REGISTRY }}/coffea-casa/${{ matrix.image }}:${{ steps.date.outputs.date }}
59
+ build-args: |
60
+ TAG=${{ steps.date.outputs.date }}
61
+ PROJECT=${{ env.PROJECT }}
62
+ GITHUB_ACTIONS=${{ env.GITHUB_ACTIONS }}
63
+ REGISTRY=${{ env.REGISTRY }}
@@ -0,0 +1,68 @@
1
+ name: CI/CD
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'coffea_casa/**'
7
+ branches:
8
+ - master
9
+ pull_request:
10
+ paths:
11
+ - 'coffea_casa/**'
12
+ branches:
13
+ - master
14
+ - develop
15
+
16
+ jobs:
17
+ linter:
18
+
19
+ runs-on: ${{ matrix.os }}
20
+ strategy:
21
+ matrix:
22
+ os: [ubuntu-latest]
23
+ python-version: ["3.11"]
24
+ name: linter - flake8 - python ${{ matrix.python-version }}
25
+
26
+ steps:
27
+ - uses: actions/checkout@master
28
+ - name: Set up Python ${{ matrix.python-version }}
29
+ uses: actions/setup-python@v1
30
+ with:
31
+ python-version: ${{ matrix.python-version }}
32
+ - name: Lint with flake8
33
+ run: |
34
+ python -m pip install -q flake8
35
+ # flake8 coffea_casa
36
+ test:
37
+
38
+ runs-on: ${{ matrix.os }}
39
+ strategy:
40
+ matrix:
41
+ os: [ubuntu-latest] #
42
+ python-version: ["3.8", "3.9", "3.10", "3.11"]
43
+ name: test coffea_casa (${{ matrix.os }}) - python ${{ matrix.python-version }}
44
+
45
+ steps:
46
+ - uses: actions/checkout@master
47
+ - run: |
48
+ git fetch --no-tags --prune --depth=1 origin +refs/heads/*:refs/remotes/origin/*
49
+ - name: Set up Python ${{ matrix.python-version }}
50
+ uses: actions/setup-python@v1
51
+ with:
52
+ python-version: ${{ matrix.python-version }}
53
+ - name: Set up Conda (Linux/MacOS)
54
+ if: matrix.os != 'windows-latest'
55
+ uses: conda-incubator/setup-miniconda@v2
56
+ with:
57
+ auto-update-conda: true
58
+ python-version: ${{ matrix.python-version }}
59
+ miniconda-version: 'latest'
60
+ - name: Install dependencies
61
+ if: matrix.os != 'windows-latest'
62
+ run: |
63
+ python -m pip install -q --upgrade pip setuptools setuptools_scm wheel six pytest codecov dask distributed
64
+ python -m pip install -q -e .
65
+ python -m pip list
66
+ - name: Test with pytest
67
+ run: |
68
+ coverage run -m pytest
@@ -0,0 +1,34 @@
1
+ name: Deploy to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types:
7
+ - published
8
+
9
+ jobs:
10
+ build-and-inspect-package:
11
+ name: Build & inspect package.
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: hynek/build-and-inspect-python-package@v2
16
+
17
+ upload-to-pypi:
18
+ name: Upload package to PyPI
19
+ needs: build-and-inspect-package
20
+ environment:
21
+ name: pypi
22
+ url: https://pypi.org/project/coffea-casa/
23
+ runs-on: ubuntu-latest
24
+ permissions:
25
+ # IMPORTANT: this permission is mandatory for trusted publishing, but
26
+ # should NOT be granted anywhere else!
27
+ id-token: write
28
+ steps:
29
+ - name: Download built artifact to dist/
30
+ uses: actions/download-artifact@v4
31
+ with:
32
+ name: Packages
33
+ path: dist
34
+ - uses: pypa/gh-action-pypi-publish@release/v1