【问题标题】:Add Files To The Repo Using Gitlab Ci Cd使用 Gitlab Ci Cd 将文件添加到存储库
【发布时间】:2021-04-02 02:26:54
【问题描述】:

我正在使用 Gitlab 提供 http 文件服务器,其中包含我正在开发的游戏的资产文件。 当您启动游戏时,应用程序会检查您是否已经下载了资产文件,并且它应该支持资产更新。

对于更新系统,我希望应用程序会检查每个资产文件的sha,如果它与本地文件的sha不同,则会替换文件。

是否可以创建一个 CI/CD 作业,将 repo 中所有文件的 sha 写入文件并将此文件推送到 repo 本身,以便应用程序也可以下载包含 sha 值的文件?

非常感谢!!

【问题讨论】:

    标签: git gitlab gitlab-ci sha


    【解决方案1】:

    首先你需要一个git 在你的容器/外壳运行器中的包。

    示例: 您需要推送到其他仓库:

    1. 将 repo 克隆到运行器
    2. 将 alias_link 添加到远程仓库
    3. 将文件添加到 git
    4. 提交他们
    5. 通过 alias_link 推送到远程仓库。

    将这些标准 git 命令放入 gitlab-ci 作业脚本中:

    git_job:
      image: alpine
      script:
        - apk add git
        - git clone https://oauth2:${PRIVATE_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git
        - git remote add alias_link https://oauth2:${PRIVATE_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git
        - git config user.name "WhoCareS"
        - git config user.email "CiContributor@email.com"
        - git add your_file1
        - git add yourdir1/
        - git commit -m "yay! new files!"
        - git push -u alias_link
    

    如果您需要推送到作业开始的同一个仓库,您可以跳过克隆的第一步。

    【讨论】:

    • 如果我需要推送到同一个仓库,这不是无限递归吗?
    • 如果你需要推送到同一个仓库,它不会是递归的。只需使用clone repo 跳过第一步,因为 gitlab docker executor 在作业开始时自动将 repo 拉到容器中。
    猜你喜欢
    • 2021-12-22
    • 2022-12-24
    • 2022-07-04
    • 2020-02-02
    • 2013-12-17
    • 1970-01-01
    • 2022-01-19
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多