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.
- coffea_casa-2025.11.25.2/.gitattributes +1 -0
- coffea_casa-2025.11.25.2/.github/dependabot.yml +11 -0
- coffea_casa-2025.11.25.2/.github/workflows/autotag.yaml +57 -0
- coffea_casa-2025.11.25.2/.github/workflows/charts-lint.yml_ +36 -0
- coffea_casa-2025.11.25.2/.github/workflows/charts-publish.yml_ +43 -0
- coffea_casa-2025.11.25.2/.github/workflows/charts-test-k3d.yaml_ +142 -0
- coffea_casa-2025.11.25.2/.github/workflows/charts-test-minikube.yaml_ +112 -0
- coffea_casa-2025.11.25.2/.github/workflows/dockercd-dev.yml +86 -0
- coffea_casa-2025.11.25.2/.github/workflows/dockerci-dev.yml +63 -0
- coffea_casa-2025.11.25.2/.github/workflows/pypi-ci.yml +68 -0
- coffea_casa-2025.11.25.2/.github/workflows/pypi-tag-deploy.yml +34 -0
- coffea_casa-2025.11.25.2/.github/workflows/update_docker.yml +64 -0
- coffea_casa-2025.11.25.2/.gitignore +162 -0
- coffea_casa-2025.11.25.2/.gitmodules +3 -0
- coffea_casa-2025.11.25.2/.pre-commit-config.yaml +72 -0
- coffea_casa-2025.11.25.2/.readthedocs.yml +18 -0
- coffea_casa-2025.11.25.2/MAINTAINERS +1 -0
- coffea_casa-2025.11.25.2/MANIFEST.in +10 -0
- coffea_casa-2025.11.25.2/PKG-INFO +153 -0
- {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/README.md +43 -13
- coffea_casa-2025.11.25.2/charts/chartpress.yaml +73 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/.helmignore +23 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/Chart.yaml +28 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/README.md +76 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressroute.yaml +196 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressroutetcp.yaml +158 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/ingressrouteudp.yaml +82 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/middlewares.yaml +564 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/middlewarestcp.yaml +57 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/serverstransports.yaml +103 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/tlsoptions.yaml +90 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/tlsstores.yaml +62 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/crds/traefikservices.yaml +268 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/docs/DEVNOTES.md +61 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/auth.py +279 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-coffea.py +57 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-generic.py +272 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/oauthenticator-oauth2-14.2.0.py +462 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/files/hub-extra/secret_creation_hook.py +238 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/pebble-config.yaml +11 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/schema.yaml +2919 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/NOTES.txt +23 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/_helpers.tpl +83 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/af-secrets.yaml +26 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/hub-extra-config-d.yaml +10 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/hub-extra-rbac.yaml +40 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/deployment.yaml +80 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/service.yaml +35 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/traefik-dashboard.yaml +19 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/templates/traefik/traefik-rbac.yaml +76 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/login.html +109 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/logo.png +0 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/unl-extra/logo.png.bin +0 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/values-prod.yaml +211 -0
- coffea_casa-2025.11.25.2/charts/coffea-casa/values.yaml +253 -0
- coffea_casa-2025.11.25.2/charts/dev-requirements.txt +16 -0
- coffea_casa-2025.11.25.2/charts/requirements.txt +6 -0
- coffea_casa-2025.11.25.2/ci/common +83 -0
- coffea_casa-2025.11.25.2/coffea_casa/__init__.py +13 -0
- coffea_casa-2025.11.25.2/coffea_casa/_version.py +34 -0
- coffea_casa-2025.11.25.2/coffea_casa/_version.pyi +4 -0
- {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/coffea_casa/coffea_casa.py +87 -18
- coffea_casa-2025.11.25.2/coffea_casa/jobqueue-coffea-casa.yaml +33 -0
- coffea_casa-2025.11.25.2/coffea_casa/plugin.py +130 -0
- coffea_casa-2025.11.25.2/docker/Dockerfile.cc-analysis-alma9 +227 -0
- coffea_casa-2025.11.25.2/docker/Dockerfile.cc-analysis-combine-alma9 +235 -0
- coffea_casa-2025.11.25.2/docker/Dockerfile.cc-dask-alma9 +335 -0
- coffea_casa-2025.11.25.2/docker/Dockerfile.cc-dask-combine-alma9 +344 -0
- coffea_casa-2025.11.25.2/docker/README.IDAP.md +12 -0
- coffea_casa-2025.11.25.2/docker/README.md +125 -0
- coffea_casa-2025.11.25.2/docker/certs/hcc-flatiron.pem +18 -0
- coffea_casa-2025.11.25.2/docker/certs/isrgrootx1.pem +31 -0
- coffea_casa-2025.11.25.2/docker/certs/lets-encrypt-r3.pem +30 -0
- coffea_casa-2025.11.25.2/docker/certs/lets-encrypt-r4.pem +30 -0
- coffea_casa-2025.11.25.2/docker/condor/condor_config +75 -0
- coffea_casa-2025.11.25.2/docker/condor/config.d/99-coffea-condor-master-config +11 -0
- coffea_casa-2025.11.25.2/docker/dask/dask.yaml +32 -0
- coffea_casa-2025.11.25.2/docker/dask/dask_tls.yaml +15 -0
- coffea_casa-2025.11.25.2/docker/dask/distributed/0001-Patch-from-bbockelman-adaptive-scaling.patch +16 -0
- coffea_casa-2025.11.25.2/docker/dask/distributed/0002-Allow-scheduler-to-preserve-worker-hostnames.patch +72 -0
- coffea_casa-2025.11.25.2/docker/dask/distributed/0003-Activate-patch.patch +12 -0
- coffea_casa-2025.11.25.2/docker/dask/distributed/0004-Add-possibility-to-setup-external_adress-for-schedul.patch +45 -0
- coffea_casa-2025.11.25.2/docker/dask/distributed/0005-Add-nanny-patch.patch +83 -0
- coffea_casa-2025.11.25.2/docker/dask/jobqueue-coffea-casa.yaml +33 -0
- coffea_casa-2025.11.25.2/docker/dask/labextension.yaml +17 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/fix-permissions +35 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/jupyter_notebook_config.py +64 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/jupyterlab-workspace.json +95 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/start-notebook.sh +22 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/start-singleuser.sh +41 -0
- coffea_casa-2025.11.25.2/docker/jupyterhub/start.sh +154 -0
- coffea_casa-2025.11.25.2/docker/k8s-worker/supervisord.conf +79 -0
- coffea_casa-2025.11.25.2/docker/prepare-env/prepare-env-cc-analysis.sh +174 -0
- coffea_casa-2025.11.25.2/docker/prepare-env/prepare-env-cc.sh +84 -0
- coffea_casa-2025.11.25.2/docs/Makefile +20 -0
- coffea_casa-2025.11.25.2/docs/_static/atlas-auth.web.cern.ch_login.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/browser.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-cilogon.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-email.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-enter.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-invitation.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-login.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-reg1.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-reg2.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/cc-request.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-authz-approval.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-authz.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-connection_success.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard_taskstream.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-dashboard_workers.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-draft.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-enter.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-image.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-labext.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-newlauncher.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-newtab.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-performance_report.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-pytest.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-resources.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-server_stop.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-start.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-startr.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea-casa-tutorials.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_hub_login.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_hub_spawn.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_clusters.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_clusters.scale.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/coffea.af.uchicago.edu_user_fengping.hu.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/dask-labextention-address.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/example1-plot.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/examplezpeak-plot.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/git.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/git2.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/servicex-coffea-workflow.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/servicex-dashboard.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/servicex-profile.png +0 -0
- coffea_casa-2025.11.25.2/docs/_static/servicex-registration.png +0 -0
- coffea_casa-2025.11.25.2/docs/cc_api.rst +9 -0
- coffea_casa-2025.11.25.2/docs/cc_condor.rst +20 -0
- coffea_casa-2025.11.25.2/docs/cc_configuration.rst +86 -0
- coffea_casa-2025.11.25.2/docs/cc_deployment.rst +2 -0
- coffea_casa-2025.11.25.2/docs/cc_issues.rst +32 -0
- coffea_casa-2025.11.25.2/docs/cc_metrics.rst +79 -0
- coffea_casa-2025.11.25.2/docs/cc_packages.rst +49 -0
- coffea_casa-2025.11.25.2/docs/cc_setup.rst +112 -0
- coffea_casa-2025.11.25.2/docs/cc_support.rst +22 -0
- coffea_casa-2025.11.25.2/docs/cc_user.rst +483 -0
- coffea_casa-2025.11.25.2/docs/cc_user_registration.rst +7 -0
- coffea_casa-2025.11.25.2/docs/conf.py +69 -0
- coffea_casa-2025.11.25.2/docs/gallery/agc_schema.py +35 -0
- coffea_casa-2025.11.25.2/docs/gallery/analysis-casa.ipynb +1559 -0
- coffea_casa-2025.11.25.2/docs/gallery/analysis_tutorial.ipynb +847 -0
- coffea_casa-2025.11.25.2/docs/gallery/coffea-casa-template.ipynb +284 -0
- coffea_casa-2025.11.25.2/docs/gallery/coffea_analysis.ipynb +1759 -0
- coffea_casa-2025.11.25.2/docs/gallery/example1.ipynb +203 -0
- coffea_casa-2025.11.25.2/docs/gallery/example2.ipynb +190 -0
- coffea_casa-2025.11.25.2/docs/gallery/example3.ipynb +202 -0
- coffea_casa-2025.11.25.2/docs/gallery/example4.ipynb +182 -0
- coffea_casa-2025.11.25.2/docs/gallery/example5.ipynb +215 -0
- coffea_casa-2025.11.25.2/docs/gallery/example6.ipynb +224 -0
- coffea_casa-2025.11.25.2/docs/gallery/example7.ipynb +239 -0
- coffea_casa-2025.11.25.2/docs/gallery/example8.ipynb +290 -0
- coffea_casa-2025.11.25.2/docs/gallery/ttbar_HT.ipynb +299 -0
- coffea_casa-2025.11.25.2/docs/gallery/utilities/columnar.png +0 -0
- coffea_casa-2025.11.25.2/docs/gallery/utilities/processor.png +0 -0
- coffea_casa-2025.11.25.2/docs/gallery/zpeak_example.ipynb +155 -0
- coffea_casa-2025.11.25.2/docs/index.rst +106 -0
- coffea_casa-2025.11.25.2/docs/make.bat +35 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_B&W_500X500.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_IconOnlyI_B&W_500X500.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_InverseB&W_500X500.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_1080X1080_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_WhiteBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_IconOnly_Brown_500X500_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_TextOnly_1080X182_Brown.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_IconOnly_Purple_500X500_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_1080X1080_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_TransparentBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_WhiteBG.png +0 -0
- coffea_casa-2025.11.25.2/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_TextOnly_1080X182_Purple.png +0 -0
- coffea_casa-2025.11.25.2/pyproject.toml +94 -0
- coffea_casa-2025.11.25.2/requirements.txt +2 -0
- coffea_casa-2025.11.25.2/scripts-extra/submit_vine_workers_to_condor +53 -0
- coffea_casa-2025.11.25.2/tests/ca.pem +31 -0
- coffea_casa-2025.11.25.2/tests/key.pem +52 -0
- coffea_casa-2025.11.25.2/tests/test_coffeacasa.py +119 -0
- coffea_casa-2025.11.25.2/tests/test_coffeacasa_args.py +59 -0
- coffea_casa-2025.11.25.2/tests/test_config.py +7 -0
- coffea_casa-2025.11.25.2/tests-charts/conftest.py +161 -0
- coffea_casa-2025.11.25.2/tests-charts/test_hub.py +121 -0
- coffea_casa-2025.11.25.2/tools/generate-json-schema.py +66 -0
- coffea_casa-2021.5.6.post1/MANIFEST.in +0 -13
- coffea_casa-2021.5.6.post1/PKG-INFO +0 -92
- coffea_casa-2021.5.6.post1/coffea_casa/__init__.py +0 -21
- coffea_casa-2021.5.6.post1/coffea_casa/_version.py +0 -21
- coffea_casa-2021.5.6.post1/coffea_casa/jobqueue-coffea-casa.yaml +0 -25
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/PKG-INFO +0 -92
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/SOURCES.txt +0 -18
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/dependency_links.txt +0 -1
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/not-zip-safe +0 -1
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/requires.txt +0 -30
- coffea_casa-2021.5.6.post1/coffea_casa.egg-info/top_level.txt +0 -1
- coffea_casa-2021.5.6.post1/setup.cfg +0 -36
- coffea_casa-2021.5.6.post1/setup.py +0 -63
- coffea_casa-2021.5.6.post1/versioneer.py +0 -1822
- {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/LICENSE +0 -0
- {coffea_casa-2021.5.6.post1 → coffea_casa-2025.11.25.2}/coffea_casa/config.py +0 -0
- /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
|