Skip to main content
Version: 0.8

Share Your Package to ghcr.io

This article will guide you on how to use kcl package management tool to push your kcl package to an OCI Registry for publication. The kcl package management tool uses ghcr.io as the default OCI Registry, and you can change the default OCI Registry by modifying the configuration file. For information on how to modify the configuration file, see kcl mod oci registry

Here is a simple step-by-step guide on how to use kcl package management tool to push your kcl package to ghcr.io.

Step 1: Install KCL CLI

First, you need to install KCL CLI on your computer. You can follow the instructions in the KCL CLI installation documentation.

Step 2: Create a ghcr.io token

If you are using the default OCI Registry, to push a kcl package to ghcr.io, you need to create a token for authentication. You can follow the instruction.

Step 3: Log in to ghcr.io

After installing KCL CLI and creating a ghcr.io token, you need to log in to ghcr.io. You can do this using the following command:

kcl registry login -u <USERNAME> -p <TOKEN> ghcr.io

Where <USERNAME> is your GitHub username, <TOKEN> is the token you created in step 2

For more information on how to log in to ghcr.io, see kcl registry login.

Step 4: Push your kcl package

Now, you can use kpm to push your kcl package to ghcr.io.

1. A valid kcl package

First, you need to make sure that what you are pushing conforms to the specifications of a kcl package, i.e., it must contain valid kcl.mod and kcl.mod.lock files.

If you don't know how to get a valid kcl.mod and kcl.mod.lock, you can use the kcl mod init command.

# Create a new kcl package named my_package
kcl mod init my_package

The kcl mod init my_package command will create a new kcl package my_package for you and create the kcl.mod and kcl.mod.lock files for this package.

If you already have a directory containing kcl files exist_kcl_package, you can use the following command to convert it into a kcl package and create valid kcl.mod and kcl.mod.lock files for it.

# In the exist_kcl_package directory
$ pwd
/home/user/exist_kcl_package

# Run the `kcl mod init` command to create the `kcl.mod` and `kcl.mod.lock` files
$ kcl mod init

For more information on how to use kcl mod init, see kcl mod init.

2. Pushing the KCL Package

You can use the following command in the root directory of your kcl package:

# In the root directory of the exist_kcl_package package
$ pwd
/home/user/exist_kcl_package

# Pushing the KCL Package to Default OCI Registry
$ kcl mod push

After completing these steps, you have successfully pushed your KCL Package to the default OCI Registry. For more information on how to use kcl mod push, see kcl mod push.