kpm — инструмент для управления пакетами kcl. В этой статье вы узнаете, как использовать kpm в GitHub Action для отправки пакета kcl в реестр OCI.
Шаг 1: Установите KPM
Сначала вам необходимо установить KPM на свой компьютер. Вы можете следовать документу по установке kpm.
Шаг 2. Создайте учетную запись GitHub
Если у вас уже есть учетная запись GitHub, вы можете пропустить этот шаг.
Зарегистрируйте новую учетную запись GitHub
Шаг 3. Создайте репозиторий GitHub для вашего пакета KCL.
1. Подготовьте репозиторий GitHub для вашего пакета KCL.
Вам необходимо подготовить репозиторий GitHub для вашего пакета KCL.
В этот репозиторий добавьте свою программу KCL, в качестве примера возьмите репозиторий https://github.com/awesome-kusion/catalog.git,
├── .github │ └── workflows │ └── push.yaml # github action workflow ├── LICENSE ├── README.md ├── kcl.mod # kcl.mod to define your kcl package ├── kcl.mod.lock # kcl.mod.lock generated by kpm └── main.k # Your KCL program
2. Установите реестр OCI, учетную запись и пароль для вашего репозитория Github.
Возьмем, к примеру, docker.io. Вы можете установить секреты REG
, REG_ACCOUNT
и REG_TOKEN
для своего репозитория. Значение REG
равно docker.io
, значение REG_ACCOUNT
— это ваша учетная запись docker.io
, а значение REG_TOKEN
— ваш пароль для входа в систему docker.io
.
Если вы используете ghcr.io
как Registry
, вам необходимо использовать токен GitHub в качестве секретов.
Шаг 4. Добавьте пакет KCL в репозиторий и напишите рабочий процесс действий на GitHub.
Добавьте файл действий github .github/workflows/push.yml
в этот репозиторий, его содержимое следующее:
name: KPM Push Workflow on: push: branches: - main jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Go 1.19 uses: actions/setup-go@v2 with: go-version: 1.19 - name: Install kpm run: go install kcl-lang.io/kpm@latest - name: Login and Push env: KPM_REG: ${{ secrets.REG }} KPM_REPO: ${{ secrets.REG_ACCOUNT }} run: kpm login -u ${{ secrets.REG_ACCOUNT }} -p ${{ secrets.REG_TOKEN }} ${{ secrets.REG }} && kpm push - name: Run kpm project from oci registry run: kpm run oci://${{ secrets.REG }}/${{ secrets.REG_ACCOUNT }}/catalog --tag 0.0.1