GitHub Action Reference#
The repository root provides a composite GitHub Action for downstream distribution repositories.
The action downloads the configured conda-ship release assets for the current
runner, verifies their GitHub artifact attestations and SHA256SUMS, and runs
the downloaded cs binary to preflight and build a runtime. The preflight uses
cs build --dry-run, then the action runs the real build. It does not build
conda-ship from source.
Self-hosted runners must provide the GitHub CLI because attestation
verification uses gh attestation verify.
The action builds only from committed project input. The selected root must
contain conda.toml plus conda.lock, pyproject.toml with [tool.conda]
plus conda.lock, pixi.toml plus pixi.lock, or pyproject.toml with
[tool.pixi] plus pixi.lock. When the manifest or matching lockfile is
missing, the action fails instead of generating or solving project configuration
in CI. This minimal example assumes the manifest contains
[tool.conda-ship].runtime-name,
[tool.conda-ship].delegate-executable, and a downstream runtime version.
When the selected conda-ship config sets
runtime-version = { from = "project-metadata" }, the action first lets
cs build --dry-run report that project metadata resolution is required. It
then sets up Python with actions/setup-python, resolves the downstream
project version through pypa/build, and retries the build with an explicit
--runtime-version. Static runtime versions and explicit runtime-version
inputs do not set up Python.
- uses: actions/checkout@v4
- uses: jezdez/conda-ship@FULL_RELEASE_COMMIT_SHA # X.Y.Z
id: cs
with:
conda-ship-version: "X.Y.Z"
Inputs#
conda-ship-versionconda-ship release version to download, such as
0.3.0. Set this when the action source is pinned by full commit SHA. When omitted, the action uses the exact action tag if available.runtime-nameRuntime name override. Set this when the release job intentionally stamps a different runtime name than
[tool.conda-ship].runtime-name.artifact-nameStaged executable and artifact stem override. Set this when any layout should stage a different command and release artifact name than
runtime-name, such ascxzfor a distribution whose base runtime name iscx. When omitted, artifacts use the resolvedruntime-nameexactly.delegate-executableDelegate executable override. Set this when the release job intentionally changes which executable receives runtime arguments.
runtime-versionRuntime version override. Set this when the release job intentionally stamps a version different from
[tool.conda-ship].runtime-versionor[project].version, or when the manifest does not provide a downstream runtime version.python-versionPython version used only when the action must resolve
runtime-version = { from = "project-metadata" }. Defaults to3.12.rootProject root containing
conda.toml/conda.lock,pixi.toml/pixi.lock, orpyproject.tomlwith either[tool.conda]/conda.lockor[tool.pixi]/pixi.lock. Defaults to the workflow workspace.artifact-layoutArtifact layout to build. Supported values are
online,external, andembedded. Overrides[tool.conda-ship].artifact-layoutwhen set. Otherwise the action leaves layout selection to the manifest andcsdefaults toonline. External artifacts stage the runtime and bundle as separate files. Embedded artifacts carry package archives inside the runtime.docs-urlDocumentation URL stamped into generated runtime metadata. Must start with
https://orhttp://and must not contain whitespace or control characters.install-schemeInstall scheme stamped into the generated runtime. Supported values are
conda-homeanduser-data.install-nameDirectory name for this runtime’s managed base prefix under the install scheme. When omitted,
csuses[tool.conda-ship].install-nameor the resolved runtime name.installerPackage manager or installer stamped into runtime metadata.
The action does not duplicate cs build validation in shell. It passes
non-empty inputs to cs build --dry-run and then to cs build. Invalid values
fail in the builder.
Supported Runner Platforms#
The action selects cs-<target> and cs-template-<target> from the current
runner’s operating system and architecture:
Runner OS |
Runner arch |
Target |
Support status |
|---|---|---|---|
|
|
|
End-to-end runtime bootstrap covered. |
|
|
|
End-to-end runtime bootstrap covered. |
|
|
|
End-to-end runtime bootstrap covered. |
|
|
|
End-to-end runtime bootstrap covered. |
|
|
|
End-to-end runtime bootstrap covered. |
|
|
|
Builder assets, template assets, PyPI wheels, and action target mapping only. Full runtime bootstrap is not end-to-end supported yet. |
Use GitHub-hosted or self-hosted runners that report one of those
runner.os/runner.arch combinations. Release workflows should pin the action
source by full commit SHA and pass the matching conda-ship release through the
conda-ship-version input.
Outputs#
cs-pathAbsolute path to the downloaded and verified
csbuilder. Use this after downstream signing or other finalization to runcs package-updatewith the action’sinfo-pathand finalized executable. The action does not generate or upload an update package itself.dist-pathAbsolute path to the directory containing all generated runtime artifacts. Use this for artifact uploads when the complete build output should be published together.
binary-pathAbsolute path to the generated runtime.
asset-namePlatform-qualified asset filename.
info-pathAbsolute path to the artifact info JSON.
lock-pathAbsolute path to the staged runtime lock.
package-list-pathAbsolute path to the staged package list.
checksums-pathAbsolute path to the SHA256 checksum file.
bundle-pathAbsolute path to the external bundle when
artifact-layout: external. Empty foronlineandembedded.