📜  将包上传到 gitlab 包注册表 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:09:34.703000             🧑  作者: Mango

将包上传到 Gitlab 包注册表 - Shell-Bash

Gitlab 提供了一个方便的方式来管理和共享你的代码包,这就是 Gitlab 包注册表。它可以让你在 Gitlab 上存储和共享你的项目依赖,以便你的团队成员在任何时候都可以使用这些依赖。

Gitlab 包注册表支持几种包管理工具,例如 NPM、Maven、RubyGems 等等。在本文中,我们将讨论如何使用 Shell-Bash 脚本将你的代码包上传到 Gitlab 包注册表。

前提条件

在开始操作之前,需要完成以下几个步骤:

  1. 确保你已经有一个 Gitlab 账号,并且创建了一个项目。
  2. 确认你已经安装了 Git 和 Gitlab CI/CD Runner。
  3. 确定你的项目已经配置了 CI/CD Pipeline。
开始上传包

上传包的第一步是编写一个脚本来将你的包上传到 Gitlab 包注册表。以下是一个示例脚本:

#!/bin/bash

PACKAGE_NAME="my-package"
PACKAGE_VERSION="1.0.0"
GITLAB_ACCESS_TOKEN="your_access_token"
GITLAB_API_URL="https://your.gitlab.server/api/v4"
GITLAB_PROJECT_ID="your_project_id"

echo "Uploading ${PACKAGE_NAME}@${PACKAGE_VERSION} to Gitlab..."

curl --request POST \
     --header "Content-Type: multipart/form-data" \
     --header "Authorization: Bearer ${GITLAB_ACCESS_TOKEN}" \
     --url "${GITLAB_API_URL}/projects/${GITLAB_PROJECT_ID}/packages/npm" \
     --form "package=@./${PACKAGE_NAME}-${PACKAGE_VERSION}.tgz"

echo "Package uploaded successfully."

这个脚本假设你已经有了一个名为 my-package 的包,并且你将上传它的 1.0.0 版本。此外,你需要提供 Gitlab 的访问令牌,以及你的 Gitlab 服务器地址和项目 ID。

将此脚本保存为 upload.sh,并确保它具有可执行权限。

接下来,你需要在你的 CI/CD 配置文件中添加一个步骤来运行此脚本。 以下是一个示例 .gitlab-ci.yml 文件:

stages:
  - build
  - publish

build:
  image: node:12
  stage: build
  script:
    - npm install
    - npm run build
  artifacts:
    paths:
      - dist/

publish:
  image: node:12
  stage: publish
  script:
    - npm pack
    - chmod +x ./upload.sh
    - ./upload.sh
  only:
    - master

这个配置文件有两个阶段:buildpublish。在 build 阶段中,它将安装依赖并构建你的项目。 在 publish 阶段中,它将打包你的项目并运行 upload.sh 脚本来将包上传到 Gitlab 包注册表。

最后,你只需要将你的代码提交到 Gitlab 仓库,并将其推送到 Gitlab 服务器即可。在 CI/CD 管道运行时,它将执行 .gitlab-ci.yml 文件中的所有步骤,并上传你的包到 Gitlab 包注册表。

希望这篇文章对你有所帮助,让你更好地管理和共享你的代码包。