问题描述
我正在使用 Gitlab 为 http 文件服务器提供服务,其中包含我正在开发的游戏的资产文件。 当您开始游戏时,应用程序会检查您是否已经下载了资产文件,并且它应该支持资产更新。
对于更新系统,我希望应用程序会检查每个资产文件的 sha,如果它与本地文件的 sha 不同,则该文件将被替换。
是否可以创建一个 CI/CD 作业,将存储库中所有文件的 sha 写入文件并将此文件推送到存储库本身,以便应用程序也可以下载包含 sha 值的文件?
非常感谢!!
解决方法
首先,您需要在容器/外壳运行器中安装一个 git
包。
示例: 您需要推送到其他存储库:
- 将 repo 克隆到 runner
- 将 alias_link 添加到远程仓库
- 向 git 添加文件
- 提交它们
- 通过 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
如果您需要推送到作业已启动的同一个存储库,您可以跳过第一步进行克隆。