> For the complete CircleCI developer hub index, see [llms.txt](https://circleci.com/developer/llms.txt)

# premiscale/general

A collection of helpful reusable jobs for GitHub, Helm, PyPi, CircleCI orbs, etc.


## Commands

### cosign-install

Install cosign CLI

| Parameter | Type | Default | Description |
|---|---|---|---|
| `architecture` | string | linux-amd64 | The architecture to install cosign for. |
| `cosign-version` | string | 2.2.4 | The version of cosign to use. |

### dependency-check

Dependency Check

| Parameter | Type | Default | Description |
|---|---|---|---|
| `delimiter` | string | , | Delimiter by which to split the dependencies string. |
| `dependencies` | string |  | List of packages to install. (By default, this is a comma-separated string if delimiter is not specified.) |

### docker-login

Login to a Nexus-like Docker registry


| Parameter | Type | Default | Description |
|---|---|---|---|
| `domain` | string | $DOCKER_DOMAIN | Docker registry URL. |
| `password` | string | $DOCKER_PASSWORD | Docker password. |
| `username` | string | $DOCKER_USERNAME | Docker username. |

### docker-verify

Verify a Docker image with cosign.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `cosign-key` | string |  | The cosign key to use for signing. |
| `cosign-version` | string | 2.2.4 | The version of cosign to use. |
| `docker-domain` | string | $DOCKER_DOMAIN | Docker registry URL. |
| `docker-password` | string | $DOCKER_PASSWORD | Docker password. |
| `docker-username` | string | $DOCKER_USERNAME | Docker username. |

### helm-login

Login to Helm repositories.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `password` | string | $HELM_PASSWORD | Nexus Helm repository password. |
| `repo` | string | $HELM_REPOSITORY_URL | Nexus Helm repository URL. |
| `repo-name` | string | helm-repo | Name to give Helm repository. |
| `username` | string | $HELM_USERNAME | Nexus Helm repository username. |

### loft-connect

Connect to a Kubernetes cluster via the loft.sh CLI.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `cluster` | string | $CLUSTER | Cluster name to connect to. |
| `loft-access-key` | string | $LOFT_ACCESS_KEY | Loft.sh access key. |
| `loft-url` | string | $LOFT_URL | Loft.sh deployment's domain. |
| `loft-version` | string | v3.2.0 | Loft.sh CLI version to install. |

### minikube-delete

Delete a Minikube cluster.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `project-name` | string | $CIRCLE_PROJECT | Name of the project. |

### minikube-install

Install Minikube.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `version` | string | latest | Minikube version to install. |

### minikube-start

Start a Minikube cluster.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `kubernetes-version` | string | 1.28.3 | Kubernetes version to install. |
| `project-name` | string | $CIRCLE_PROJECT | Name of the project. |

### minikube-stop

Stop a Minikube cluster.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `project-name` | string | $CIRCLE_PROJECT | Name of the project. |

### orb-pre-pack

Command for pre-packing orbs.


### orb-rev-pack

Command for reverse-pre-packing orbs.


### python-install-poetry

Install poetry

### utils-install-jq

Install jq

| Parameter | Type | Default | Description |
|---|---|---|---|
| `jq-version` | string | 1.7.1 | jq version to install. |

### utils-install-yq

Install yq

| Parameter | Type | Default | Description |
|---|---|---|---|
| `yq-version` | string | 4.40.5 | yq version to install. |

## Jobs

### docker-ecr

Build an push a Docker image to AWS ECR.

Requires a context with $AWS_ACCESS_KEY_ID, $AWS_SECRET_ACCESS_KEY, $AWS_DEFAULT_REGION, $AWS_ACCOUNT_ID set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `args` | string |  | Additional args string to add to the build command. (E.g., '--build-arg=HELLO=WORLD'.) |
| `aws-access-key-id` | string | $AWS_ACCESS_KEY_ID | AWS Access Key ID. |
| `aws-account-id` | string | $AWS_ACCOUNT_ID | AWS Account ID. |
| `aws-cli-version` | string | latest | Version of the AWS CLI to install. |
| `aws-region` | string | $AWS_DEFAULT_REGION | Region of the ECR registry. |
| `aws-secret-access-key` | string | $AWS_SECRET_ACCESS_KEY | AWS Secret Access Key ID. |
| `branch-tag` | boolean | false | Whether or not to push an additional tag to the registry with the branch name as the tag. |
| `buildkit` | boolean | true | Enable buildkit (https://docs.docker.com/build/buildkit/#getting-started). |
| `commit-tag` | boolean | false | Whether or not to push an additional tag to the registry with the commit hash as the tag. |
| `docker-layer-caching` | boolean | false | Enable DLC on the machine executor. Costs 200 credits / run, however. |
| `image-name` | string |  | Name of the image, and also the ECR repository. |
| `immutable-repository` | boolean | false | Ensure image tags are immutable in an ECR repository if it has to create the repository.. |
| `path` | string | Dockerfile | Path to a particular Dockerfile or containing directory with a Dockerfile present. |
| `resource-class` | enum | medium | Resource class to run as. |
| `tag` | string | latest | Name of the tag for the image. |

### docker-ecr-python-codeartifact

Build an push a Docker image that depends on a Python artifact from AWS CodeArtifact to AWS ECR.

This job is exactly the same as docker-ecr, but with the added step of pull a PYTHON_PASSWORD env var from AWS to authenticate with AWS CodeArtifact within the Docker container.

Requires a context with $AWS_ACCESS_KEY_ID, $AWS_SECRET_ACCESS_KEY, $AWS_DEFAULT_REGION, $AWS_ACCOUNT_ID set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `args` | string |  | Additional args string to add to the build command. (E.g., '--build-arg=HELLO=WORLD'.) |
| `aws-access-key-id` | string | $AWS_ACCESS_KEY_ID | AWS Access Key ID. |
| `aws-account-id` | string | $AWS_ACCOUNT_ID | AWS Account ID. |
| `aws-cli-version` | string | latest | Version of the AWS CLI to install. |
| `aws-codeartifact-domain` | string | $PYTHON_REPOSITORY | AWS CodeArtifact domain. |
| `aws-region` | string | $AWS_DEFAULT_REGION | Region of the ECR registry. |
| `aws-secret-access-key` | string | $AWS_SECRET_ACCESS_KEY | AWS Secret Access Key ID. |
| `branch-tag` | boolean | false | Whether or not to push an additional tag to the registry with the branch name as the tag. |
| `buildkit` | boolean | true | Enable buildkit (https://docs.docker.com/build/buildkit/#getting-started). |
| `commit-tag` | boolean | false | Whether or not to push an additional tag to the registry with the commit hash as the tag. |
| `docker-layer-caching` | boolean | false | Enable DLC on the machine executor. Costs 200 credits / run, however. |
| `image-name` | string |  | Name of the image, and also the ECR repository. |
| `immutable-repository` | boolean | false | Ensure image tags are immutable in an ECR repository if it has to create the repository.. |
| `path` | string | Dockerfile | Path to a particular Dockerfile or containing directory with a Dockerfile present. |
| `resource-class` | enum | medium | Resource class to run as. |
| `tag` | string | latest | Name of the tag for the image. |

### docker-github

Build and push Docker containers to the GitHub Container Registry (ghcr.io).

Requires a context with $GITHUB_TOKEN and $GITHUB_USER set to authenticate.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `args` | string |  | Additional args string to add to the build command. (E.g., '--build-arg HELLO=WORLD'.) |
| `buildkit` | boolean | true | Enable buildkit (https://docs.docker.com/build/buildkit/#getting-started). |
| `commit-tag` | boolean | false | Whether or not to push an additional tag to the registry with the commit hash as the tag. |
| `docker-layer-caching` | boolean | false | Enable DLC on the machine executor. Costs 200 credits / run, however. |
| `image-name` | string |  | Name of the image. |
| `path` | string | . | Path to the Dockerfile. |
| `resource-class` | enum | medium | Resource class to run as. |
| `tag` | string | latest | Name of the tag for the image. |
| `token` | string | $GITHUB_TOKEN | GitHub token to use with the gh-client. |
| `username` | string | $GITHUB_USERNAME | GitHub user to authenticate with ghcr.io. |

### docker-hub

Build an push a Docker image to DockerHub.

Requires a context with $DOCKER_USERNAME, $ACCESS_TOKEN, set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `args` | string |  | Additional args string to add to the build command. (E.g., '--build-arg=HELLO=WORLD'.) |
| `buildkit` | boolean | true | Enable buildkit (https://docs.docker.com/build/buildkit/#getting-started). |
| `commit-tag` | boolean | false | Whether or not to push an additional tag to the registry with the commit hash as the tag. |
| `docker-layer-caching` | boolean | false | Enable DLC on the machine executor. Costs 200 credits / run, however. |
| `image-name` | string |  | Name of the image. |
| `organization` | string | $ORGANIZATION_NAME | Organization name on Docker Hub. |
| `password` | string | $ACCESS_TOKEN | Docker Hub password. |
| `path` | string | Dockerfile | Path to a particular Dockerfile or containing directory with a Dockerfile present. |
| `resource-class` | enum | medium | Resource class to run as. |
| `tag` | string | latest | Name of the tag for the image. |
| `username` | string | $DOCKER_USERNAME | Docker username. |

### docker-nexus

Build and push Docker containers to a Nexus Container Registry

Requires a context with $DOCKER_USERNAME, $DOCKER_PASSWORD, and $DOCKER_DOMAIN set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `args` | string |  | Additional args string to add to the build command. (E.g., '--build-arg=HELLO=WORLD'.) |
| `buildkit` | boolean | true | Enable buildkit (https://docs.docker.com/build/buildkit/#getting-started). |
| `commit-tag` | boolean | false | Whether or not to push an additional tag to the registry with the commit hash as the tag. |
| `docker-layer-caching` | boolean | false | Enable DLC on the machine executor. Costs 200 credits / run, however. |
| `image-name` | string |  | Name of the image. |
| `nexus-domain` | string | $DOCKER_DOMAIN | Nexus URL. |
| `password` | string | $DOCKER_PASSWORD | Docker password. |
| `path` | string | Dockerfile | Path to a particular Dockerfile or containing directory with a Dockerfile present. |
| `resource-class` | enum | medium | Resource class to run as. |
| `tag` | string | latest | Name of the tag for the image. |
| `username` | string | $DOCKER_USERNAME | Docker username. |

### github-release

Generate GitHub releases automatically when a repository is tagged. Requires a context with $GITHUB_TOKEN set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `cosign` | boolean | false | Cosign releases. This flag also enables caching, so be sure to enable caching on other artifacts-generating jobs. |
| `cosign-artifacts-directory` | string | /artifacts | Directory in which artifacts are stored that need to be signed prior to release. |
| `cosign-docker-image-tag` | string |  | Docker image tag to sign. At this time, this orb only supports signing one Docker image.

Note: if you're signing a Docker image, you must also set the 'cosign' parameter to true, and apply a docker context with the following parameters' environment variables set.
 |
| `cosign-key` | string | COSIGN_PRIVATE_KEY | Private key to sign artifacts with.

Be sure to skip the '$' prefix in the environment variable name as it's not necessary. The 'cosign' tool just needs to know the environment variable's name.
 |
| `cosign-key-password` | string | $COSIGN_PASSWORD | Password for the private key used for artifact signing. If this is set to COSIGN_PASSWORD, we can skip the prompt.

https://docs.sigstore.dev/key_management/signing_with_self-managed_keys/
 |
| `cosign-version` | string | 2.2.4 | Cosign release version to install. |
| `docker-domain` | string | $DOCKER_DOMAIN | Docker registry URL. |
| `docker-password` | string | $DOCKER_PASSWORD | Docker password. |
| `docker-username` | string | $DOCKER_USERNAME | Docker username. |
| `executor` | executor | default | Executor image to run as. |
| `gh-version` | string | 2.28.0 | Version of the GitHub (gh) CLI to install.

https://github.com/cli/cli/releases
 |
| `github-organization` | string | $CIRCLE_ORGANIZATION | GitHub organization / CircleCI namespace. |
| `github-project-name` | string | $CIRCLE_PROJECT_REPONAME | GitHub project name. |
| `resource-class` | enum | small | Resource class to run as. |
| `token` | string | $GITHUB_TOKEN | GitHub token to use with the gh-client. |

### helm-dry-run

Helm upgrade --install --dry-run against a cluster.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `additional-values` | string |  | Additional values.yaml-files to pass to helm. |
| `cluster` | string | $CLUSTER | Cluster name to connect to. |
| `executor` | executor | default | Executor image to run as. |
| `install-name` | string |  | The name to give the deployment. |
| `loft-access-key` | string | $LOFT_ACCESS_KEY | Loft.sh access key. |
| `loft-url` | string | $LOFT_URL | Loft.sh deployment's domain. |
| `namespace` | string | default | Cluster namespace to deploy to. |
| `password` | string | $HELM_PASSWORD | Nexus Helm repository password. |
| `repo` | string | $HELM_REPOSITORY_URL | Nexus Helm repository URL. |
| `repo-name` | string | premiscale | Repo alias (helm repo add <alias> <url>). |
| `resource-class` | enum | small |  |
| `username` | string | $HELM_USERNAME | Nexus Helm repository username. |
| `version` | string | $CIRCLE_TAG | Version of the package to publish (helm package --version) |

### helm-lint

Run 'helm lint' against a particular chart. Can be ran against every chart in a repo by using a matrix.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `chart-path` | string |  | Path to Helm chart we wish to lint. |
| `executor` | executor | default | Executor image to run as. |
| `resource-class` | enum | small | Resource class to run as. |

### helm-release-ecr

Publish Helm packages to AWS ECR hosted Helm repositories.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `app-version` | string |  | Application version of the package (helm package --app-version) |
| `aws-access-key-id` | string | $AWS_ACCESS_KEY_ID | AWS Access Key ID. |
| `aws-account-id` | string | $AWS_ACCOUNT_ID | AWS Account ID. |
| `aws-cli-version` | string | latest | Version of the AWS CLI to install. |
| `aws-region` | string | $AWS_DEFAULT_REGION | Region of the ECR registry. |
| `aws-secret-access-key` | string | $AWS_SECRET_ACCESS_KEY | AWS Secret Access Key ID. |
| `chart-name-postfix` | string |  | A lot of times, Helm charts will have the same name as the project, and Docker artifacts are generated alongside Helm charts. |
| `chart-name-prefix` | string |  | A lot of times, Helm charts will have the same name as the project, and Docker artifacts are generated alongside Helm charts. |
| `cosign` | boolean | false | Cache locally-generated artifacts for code signing under `/artifacts`. |
| `executor` | executor | default | Executor image to run as. |
| `helm-version` | string | v3.14.4 | Helm version to install. |
| `image-tag` | string |  | Update a Docker image tag in the chart. By default empty, do not execute this step. |
| `image-tag-path` | string | .image.tag | If path is different from .image.tag, update the path here for yq. |
| `immutable-repository` | boolean | false | Ensure image tags are immutable in an ECR repository if it has to create the repository. |
| `path` | string | helm/$CIRCLE_PROJECT_REPONAME | Path of the Helm chart to package. Allows the use of matrices for multiple charts. |
| `pre-command` | string |  | Run a command prior to packaging. |
| `repo` | string | $HELM_REPOSITORY_URL | Nexus Helm repository URL. |
| `resource-class` | enum | small |  |
| `version` | string | $CIRCLE_TAG | Version of the package to publish (helm package --version) |

### helm-release-github-pages

Package and upload a Helm chart to a GitHub repository's pages branch.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `chart-path` | string | helm/ | Path to Helm chart we wish to package. |
| `chart-type` | enum | development | Enum of either development or production (determines whether or not to respect Chart.yaml .version-values). |
| `development-package-id` | integer | 1 | Minor version to give development package (irrelevant for production; could be set to \<< pipeline.number >>). |
| `executor` | executor | default | Executor image to run as. |
| `git-email` | string | $GITHUB_EMAIL | Git config user.email. |
| `git-ssh-key-fingerprint` | string |  | A r/w GitHub SSH key, associated both with the repository, project in CircleCI (make sure it's associated with the correct github.com domain name, also). |
| `git-username` | string | $GITHUB_USERNAME | Git config user.name. |
| `helm-repo-domain` | string | https://helm.aperiodicity.com | Chart repo URL associated with GitHub pages (e.g. https://helm.aperiodicity.com). |
| `pages-branch` | string | gh-pages | GitHub pages branch to publish this Helm chart to. |
| `publish-path` | string | charts/development | Which directory in gh-pages to publish this Helm chart. |
| `resource-class` | enum | small | Resource class to run as. |

### helm-release-nexus

Publish Helm packages to Nexus hosted Helm repositories.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `app-version` | string |  | Application version of the package (helm package --app-version) |
| `cosign` | boolean | false | Cache locally-generated artifacts for code signing under `/artifacts`. |
| `executor` | executor | default | Executor image to run as. |
| `helm-version` | string | v3.14.4 | Helm version to install. |
| `image-tag` | string |  | Update a Docker image tag in the chart. By default empty, do not execute this step. |
| `image-tag-path` | string | .image.tag | If path is different from .image.tag, update the path here for yq. |
| `password` | string | $HELM_PASSWORD | Nexus Helm repository password. |
| `path` | string | helm/$CIRCLE_PROJECT_REPONAME | Path of the Helm chart to package. Allows the use of matrices for multiple charts. |
| `pre-command` | string |  | Run a command prior to packaging. |
| `repo` | string | $HELM_REPOSITORY_URL | Nexus Helm repository URL. |
| `resource-class` | enum | small |  |
| `username` | string | $HELM_USERNAME | Nexus Helm repository username. |
| `version` | string | $CIRCLE_TAG | Version of the package to publish (helm package --version) |

### helm-test-deprecated

Run pluto against all Helm charts in a project.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `excludes` | string |  | Exclude is a list of check names to exclude. |
| `executor` | executor | default | Executor image to run as. |
| `pluto-version` | string | 5.19.0 | Version of pluto to install. |
| `resource-class` | enum | small | Resource class to run as. |

### helm-test-kubelinter

Run kubelinter against Helm charts in a project.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `exclude` | string |  | Exclude is a list of check names to exclude. |
| `executor` | executor | default | Executor image to run as. |
| `kubelinter-version` | string | 0.6.5 | Version of kubelinter to install. |
| `path` | string | . | Path under which kubelinter should look for Helm charts. |
| `resource-class` | enum | small | Resource class to run as. |

### helm-test-kubesec

Run kubesec against all Helm charts in a project.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `executor` | executor | default | Executor image to run as. |
| `kubeconform-schema` | string |  | Add additional schema, such as Bitnami CRDs for SealedSecrets:

  '--schema-location https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/bitnami.com/sealedsecret_v1alpha1.json'

Note: the schema MUST be in JSON format, otherwise kubesec will just ignore it.
 |
| `kubernetes-versions` | string | 1.24.17 1.25.16 1.26.11 1.27.8 1.28.4 | A space-delimited set of Kubernetes versions to check schema (kubeconform) against. |
| `kubesec-version` | string | 2.14.0 | Version of kubesec to install. |
| `minimum-score` | integer | 0 | Minimum kubesec score for every chart to pass the job. |
| `resource-class` | enum | small | Resource class to run as. |

### helm-upgrade

Helm upgrade --install on a cluster.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `additional-values` | string |  | Additional values.yaml-files to pass to helm. |
| `cluster` | string | $CLUSTER | Cluster name to connect to. |
| `executor` | executor | default | Executor image to run as. |
| `install-name` | string | $CIRCLE_PROJECT_REPONAME | The name to give the deployment. |
| `loft` | boolean | false | Authenticate with Loft. |
| `loft-access-key` | string | $LOFT_ACCESS_KEY | Loft.sh access key. |
| `loft-url` | string | $LOFT_URL | Loft.sh deployment's domain. |
| `namespace` | string | default | Cluster namespace to deploy to. |
| `password` | string | $HELM_PASSWORD | Nexus Helm repository password. |
| `repo` | string | $HELM_REPOSITORY_URL | Nexus Helm repository URL. |
| `repo-name` | string | premiscale | Repo alias (helm repo add <alias> <url>). |
| `resource-class` | enum | small |  |
| `uninstall-prev-name` | string |  | Name of another Helm installation managed for a different branch.

This parameter is intended to be used with cross-namespace deployments with a gitflow like

    development branch -> master -> tags

with 3 separate test namespaces for each.
 |
| `uninstall-prev-namespace` | string | default | Intended to be used in tandem with the 'uninstall-prev-name'-parameter. Specify a namespace, if different
than the deployment, to perform the uninstall within.
 |
| `username` | string | $HELM_USERNAME | Nexus Helm repository username. |
| `version` | string | $CIRCLE_TAG | Version of the package to publish (helm package --version) |

### kubernetes-kubeconform

KubeConform validates CRDs

| Parameter | Type | Default | Description |
|---|---|---|---|
| `executor` | executor | default | Executor image to run as. |
| `output` | string | text | output format - json, junit, pretty, tap, text (default "text") |
| `path` | string | crds/ | Path to CRDs to validate. |
| `resource-class` | enum | small |  |
| `resource_class` | enum | small | Resource class. |
| `version` | string | 0.6.3 | Version of KubeConform to install. |

### orb-pack

Pre-pack orbs, as I've described in

https://github.com/CircleCI-Public/orb-tools-orb/pull/149


| Parameter | Type | Default | Description |
|---|---|---|---|
| `executor` | executor | default | Executor image to run as. |
| `resource-class` | enum | small | Resource class to run as. |

### orb-unpack

Pre-pack orbs, as I've described in

https://github.com/CircleCI-Public/orb-tools-orb/pull/149


| Parameter | Type | Default | Description |
|---|---|---|---|
| `executor` | executor | default | Executor image to run as. |
| `resource-class` | enum | small | Resource class to run as. |

### python-mypy

Run mypy

| Parameter | Type | Default | Description |
|---|---|---|---|
| `cache` | boolean | true | Use cache for .mypy_cache/. |
| `configuration_file` | string | .mypy.ini | Path to mypy configuration file |
| `delimiter` | string | , | Delimiter by which to split the dependencies string. |
| `dependencies` | string |  | List of packages to install. (By default, this is a comma-separated string if delimiter is not specified.) |
| `executor` | executor | python-3-10 | Override the version of Python. |
| `modules_path` | string | src | Path to modules directory in package. |
| `mypy-args` | string |  | Specify Additional MyPy configuration arguments / flags. |
| `resource-class` | enum | small | Resource class to run as. |

### python-pylint

Run pylint

| Parameter | Type | Default | Description |
|---|---|---|---|
| `configuration_file` | string | .pylintrc | Path to pylint configuration file |
| `delimiter` | string | , | Delimiter by which to split the dependencies string. |
| `dependencies` | string |  | List of packages to install. (By default, this is a comma-separated string if delimiter is not specified.) |
| `executor` | executor | python-3-10 | Override the version of Python. |
| `modules_path` | string | src | Path to modules directory in package. |
| `resource-class` | enum | small | Resource class to run as. |

### python-release-poetry

twine upload

| Parameter | Type | Default | Description |
|---|---|---|---|
| `cosign` | boolean | false | Cache locally-generated artifacts for code signing under `/artifacts`. |
| `executor` | executor | python-3-10 | Override default Python executor |
| `password` | string | $TWINE_PASSWORD | PyPi API token. |
| `pypirc-config` | string | .pypirc | Location of the .pypirc-file to use. |
| `repository` | string |  | Repository name to upload to. Must have a URL set in .pypirc. |
| `resource-class` | enum | small | Resource class. |
| `username` | string | $TWINE_USERNAME | PyPi username. |
| `version` | string | $CIRCLE_TAG | Override the version of the uploaded artifact in pyproject.toml. |

### python-release-setuptools

Release to PyPi repository. Requires a context with $PYPI_USERNAME and $API_TOKEN set.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `executor` | executor | python-3-10 | Override the version of Python. |
| `password` | string | $TWINE_PASSWORD | PyPi API token. |
| `repository` | string | python | Repository name to upload to. |
| `resource-class` | enum | small | Resource class to run as. |
| `username` | string | $TWINE_USERNAME | PyPi username. |

### python-yamale

Validate YAML schema with Yamale.

https://github.com/23andMe/Yamale


| Parameter | Type | Default | Description |
|---|---|---|---|
| `delimiter` | string | , | Delimiter by which to split the dependencies string. |
| `dependencies` | string |  | List of packages to install. (By default, this is a comma-separated string if delimiter is not specified.) |
| `executor` | executor | python-3-10 | Executor image to run as. |
| `path` | string | . | Path containing YAML files to validate. |
| `resource-class` | enum | small | Resource class to run as. |
| `schema-path` | string | config/schema.yaml | Path to the schema file to validate with Yamale. |

## Executors

### default

base default CircleCI executor.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `tag` | string | stable-20.04 | Default Ubuntu 20.04 executor. |

### machine

Docker build / machine executor.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `caching` | boolean | false | Enable Docker layer caching |
| `tag` | string | 2204:2024.01.2 | Ubuntu version string to use. |

### python-3-8

Python executor.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `tag` | string | 3.8.19 | Python tag to use. |

### python-3-9

Python executor.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `tag` | string | 3.9.19 | Python tag to use. |

### python-3-10

Python executor.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `tag` | string | 3.10.14 | Python tag to use. |

## Examples

### example_1

The general orb contains a lot of helpful reusable jobs.


```yaml
version: '2.1'
setup: true
orbs:
  dynamic: bjd2385/dynamic-continuation@3.7.1
  general: bjd2385/general@0.7.8
workflows:
  general:
    jobs:
      - dynamic/continue:
          context: circleci
      - general/orb-pack:
          filters:
            branches:
              ignore: /.*/
            tags:
              only: /^v?[0-9]+\.[0-9]+\.[0-9]+$/
```