calkit-python 0.28.3__tar.gz → 0.28.4__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.
- {calkit_python-0.28.3 → calkit_python-0.28.4}/PKG-INFO +1 -1
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/__init__.py +1 -1
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/new.py +31 -3
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/notebooks.md +1 -1
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/quickstart.md +1 -1
- calkit_python-0.28.4/docs/tutorials/github-actions.md +83 -0
- calkit_python-0.28.4/docs/tutorials/img/actions-repo-secrets.png +0 -0
- calkit_python-0.28.4/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
- calkit_python-0.28.4/docs/tutorials/img/quick-actions.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/index.md +1 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/mkdocs.yml +1 -0
- calkit_python-0.28.3/docs/tutorials/img/latex-codespaces/new-token.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/FUNDING.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/workflows/docs.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/workflows/format.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/workflows/publish-test.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/workflows/publish.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.github/workflows/test.yml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.gitignore +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.pre-commit-config.yaml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/.python-version +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/CITATION.cff +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/CONTRIBUTING.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/LICENSE +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/Makefile +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/README.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/__main__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/calc.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/check.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/check.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/cloud.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/config.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/describe.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/import_.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/list.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/main.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/notebooks.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/office.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/overleaf.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cli/update.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/cloud.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/conda.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/config.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/datasets.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/docker.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/dvc.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/environments.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/git.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/github.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/gui.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/jupyter.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/magics.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/matlab.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/models/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/models/core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/models/io.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/models/iteration.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/models/pipeline.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/notebooks.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/office.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/ops.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/pipeline.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/releases.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/server.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/article/paper.tex +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/jfm/jfm.bst +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/jfm/jfm.cls +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/jfm/lineno-FLM.sty +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/jfm/paper.tex +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/templates/latex/jfm/upmath.sty +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_check.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_config.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_list.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_main.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_new.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/cli/test_notebooks.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/models/__init__.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/models/test_iteration.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/models/test_pipeline.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_calc.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_check.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_conda.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_core.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_dvc.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_jupyter.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_magics.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_notebooks.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_pipeline.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/tests/test_templates.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/calkit/zenodo.py +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/CNAME +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/apps.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/calculations.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/calkit-yaml.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/cli-reference.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/cloud-integration.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/datasets.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/dependencies.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/environments.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/examples.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/help.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/img/c-to-the-k-white.svg +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/img/calkit-no-bg.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/img/connect-zenodo.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/img/jupyterlab-params.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/img/vscode-nb-params.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/index.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/installation.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/local-server.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/overleaf.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/pipeline/index.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/pipeline/manual-steps.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/pipeline/running-and-logging.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/references.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/releases.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/adding-latex-pub-docker.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/conda-envs.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/existing-project.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/first-project.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/building-codespace.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/codespaces-secrets-2.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/editor-split.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/go-to-linked-code.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/issue-from-selection.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/new-project.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/new-pub-2.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/paper.tex.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/project-home-3.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/push.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/stage.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/anakin-excel.jpg +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/chart-more-rows.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/create-project.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/elsevier-research-data-guidelines.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/excel-chart.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/excel-data.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/insert-link-to-file.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/needs-clone.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/new-stage.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/phd-comics-version-control.webp +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/pipeline-out-of-date.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/status-more-rows.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/uncommitted-changes.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/untracked-data.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/updated-publication.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/word-to-pdf-stage-2.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/workflow-page.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/clone.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/create-project.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/datasets-page.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/figure-on-website-updated.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/figure-on-website.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/new-token.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/reclone.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/status-after-import-dataset.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/run-proc.png +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/latex-codespaces.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/matlab.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/notebook-pipeline.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/office.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/openfoam.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/procedures.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/docs/version-control.md +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/pyproject.toml +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/scripts/install.ps1 +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/scripts/install.sh +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/test/nb-params.ipynb +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/test/nb-subdir.ipynb +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/test/pipeline.ipynb +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/test/test-log.log +0 -0
- {calkit_python-0.28.3 → calkit_python-0.28.4}/uv.lock +0 -0
|
@@ -157,10 +157,16 @@ def new_project(
|
|
|
157
157
|
repo.git.commit(["-m", "Initialize DVC"])
|
|
158
158
|
ck_info_fpath = os.path.join(abs_path, "calkit.yaml")
|
|
159
159
|
if os.path.isfile(ck_info_fpath) and not overwrite:
|
|
160
|
-
|
|
160
|
+
ck_info = calkit.load_calkit_info(wdir=abs_path)
|
|
161
|
+
name = ck_info.get("name", name)
|
|
162
|
+
title = ck_info.get("title", title)
|
|
163
|
+
description = ck_info.get("description", description)
|
|
164
|
+
typer.echo(
|
|
161
165
|
"Destination is already a Calkit project; "
|
|
162
|
-
"use
|
|
166
|
+
"will use existing project info where possible"
|
|
163
167
|
)
|
|
168
|
+
else:
|
|
169
|
+
ck_info = {}
|
|
164
170
|
if os.path.isdir(abs_path) and os.listdir(abs_path) and repo is None:
|
|
165
171
|
warn(f"{abs_path} is not empty")
|
|
166
172
|
if name is None:
|
|
@@ -224,7 +230,29 @@ def new_project(
|
|
|
224
230
|
)
|
|
225
231
|
repo.git.add("calkit.yaml")
|
|
226
232
|
if not no_commit:
|
|
227
|
-
repo.git.commit(
|
|
233
|
+
repo.git.commit(
|
|
234
|
+
["calkit.yaml", "-m", "Create calkit.yaml"]
|
|
235
|
+
)
|
|
236
|
+
else:
|
|
237
|
+
# Merge with existing project info in calkit.yaml
|
|
238
|
+
typer.echo("Updating existing calkit.yaml file")
|
|
239
|
+
ck_info = (
|
|
240
|
+
dict(
|
|
241
|
+
owner=resp["owner_account_name"],
|
|
242
|
+
name=resp["name"],
|
|
243
|
+
title=resp["title"],
|
|
244
|
+
description=resp["description"],
|
|
245
|
+
git_repo_url=resp["git_repo_url"],
|
|
246
|
+
)
|
|
247
|
+
| ck_info
|
|
248
|
+
)
|
|
249
|
+
with open(calkit_fpath, "w") as f:
|
|
250
|
+
ryaml.dump(ck_info, f)
|
|
251
|
+
repo.git.add("calkit.yaml")
|
|
252
|
+
if not no_commit and repo.git.diff("--staged"):
|
|
253
|
+
repo.git.commit(
|
|
254
|
+
["calkit.yaml", "-m", "Update calkit.yaml"]
|
|
255
|
+
)
|
|
228
256
|
try:
|
|
229
257
|
calkit.dvc.configure_remote(wdir=abs_path)
|
|
230
258
|
except Exception:
|
|
@@ -25,7 +25,7 @@ If you're using Conda for environment management,
|
|
|
25
25
|
e.g., with an `environment.yml` file,
|
|
26
26
|
you can use the `calkit new conda-env` command.
|
|
27
27
|
|
|
28
|
-
Next, we can start building our [pipeline](pipeline.md).
|
|
28
|
+
Next, we can start building our [pipeline](pipeline/index.md).
|
|
29
29
|
Let's say we have a Jupyter notebook called `collect-data.ipynb`
|
|
30
30
|
that produces raw data at `data/raw.h5`.
|
|
31
31
|
We can add a pipeline stage to run this notebook in the `main` environment
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Running Calkit in GitHub Actions
|
|
2
|
+
|
|
3
|
+
A project can be set up to automatically run the pipeline every time a
|
|
4
|
+
change is pushed, either to the main branch or on a pull request,
|
|
5
|
+
using GitHub Actions.
|
|
6
|
+
The latter allows for inspection of outputs before merging into main.
|
|
7
|
+
|
|
8
|
+
To get started, generate a DVC token and set it in your GitHub Actions
|
|
9
|
+
secrets as `CALKIT_DVC_TOKEN`,
|
|
10
|
+
either at your account or project level.
|
|
11
|
+
On calkit.io, there are shortcuts on the project page for managing both
|
|
12
|
+
Calkit tokens and GitHub Actions secrets:
|
|
13
|
+
|
|
14
|
+

|
|
15
|
+
|
|
16
|
+

|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
Next, add a workflow to the project in the `.github/workflows` folder.
|
|
21
|
+
For example, we can put the content below into `.github/workflows/run.yml`:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
name: Run pipeline
|
|
25
|
+
|
|
26
|
+
on:
|
|
27
|
+
push:
|
|
28
|
+
branches:
|
|
29
|
+
- main
|
|
30
|
+
pull_request:
|
|
31
|
+
|
|
32
|
+
permissions:
|
|
33
|
+
contents: write
|
|
34
|
+
|
|
35
|
+
# Make sure we only ever run one per branch so we don't have issues pushing
|
|
36
|
+
# after running the pipeline
|
|
37
|
+
concurrency:
|
|
38
|
+
group: calkit-run-${{ github.ref }}
|
|
39
|
+
cancel-in-progress: false
|
|
40
|
+
|
|
41
|
+
jobs:
|
|
42
|
+
main:
|
|
43
|
+
name: Run
|
|
44
|
+
runs-on: ubuntu-latest
|
|
45
|
+
steps:
|
|
46
|
+
- uses: actions/checkout@v4
|
|
47
|
+
with:
|
|
48
|
+
# For PRs, checkout the head ref to avoid detached HEAD
|
|
49
|
+
ref: ${{ github.head_ref || github.ref_name }}
|
|
50
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
51
|
+
- name: Configure Git credentials
|
|
52
|
+
run: |
|
|
53
|
+
git config user.name github-actions[bot]
|
|
54
|
+
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
|
|
55
|
+
- name: Setup uv
|
|
56
|
+
uses: astral-sh/setup-uv@v5
|
|
57
|
+
- name: Install Calkit
|
|
58
|
+
run: uv tool install calkit-python
|
|
59
|
+
- name: Run Calkit
|
|
60
|
+
uses: calkit/run-action@v1
|
|
61
|
+
with:
|
|
62
|
+
dvc_token: ${{ secrets.CALKIT_DVC_TOKEN }}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
This particular example installs Calkit with uv,
|
|
66
|
+
meaning `uv` and `uv-venv` environment types will work without any additional
|
|
67
|
+
configuration.
|
|
68
|
+
Docker is also installed by default on the `ubuntu-latest` machine.
|
|
69
|
+
If other environment types are used in the project,
|
|
70
|
+
setup steps may be necessary for those, e.g.,
|
|
71
|
+
[`setup-miniconda`](https://github.com/marketplace/actions/setup-miniconda)
|
|
72
|
+
or [`install-juliaup`](https://github.com/marketplace/actions/install-juliaup).
|
|
73
|
+
|
|
74
|
+
By default, the Calkit GitHub Action will run the pipeline and save results.
|
|
75
|
+
This is why the workflow needs write permissions and configures Git
|
|
76
|
+
credentials to act as the GitHub Actions bot.
|
|
77
|
+
The workflow also limits concurrency so multiple jobs don't attempt to push
|
|
78
|
+
to the same branch at the same time.
|
|
79
|
+
|
|
80
|
+
It's possible to configure the action to not save results, e.g., if you
|
|
81
|
+
just want to check that the pipeline can run without errors.
|
|
82
|
+
See the [documentation](https://github.com/marketplace/actions/run-calkit)
|
|
83
|
+
for all available options.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -10,3 +10,4 @@
|
|
|
10
10
|
- [Adding a new LaTeX-based publication with its own Docker build environment](adding-latex-pub-docker.md)
|
|
11
11
|
- [A reproducible workflow using Microsoft Office (Word and Excel)](office.md)
|
|
12
12
|
- [Using Calkit with MATLAB](matlab.md)
|
|
13
|
+
- [Automation with GitHub Actions](github-actions.md)
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/editor-split.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/new-project.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/new-pub-2.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/paper.tex.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/latex-codespaces/project-home-3.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/insert-link-to-file.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/pipeline-out-of-date.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/status-more-rows.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/uncommitted-changes.png
RENAMED
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/updated-publication.png
RENAMED
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/office/word-to-pdf-stage-2.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/create-project.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{calkit_python-0.28.3 → calkit_python-0.28.4}/docs/tutorials/img/openfoam/figure-on-website.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|