首页 > 解决方案 > gitlab ci 不更新远程服务器上的代码

问题描述

我想将 ma 测试应用程序从本地存储库部署到 gitlab 存储库,并使用 gitlab ci 将其推送到我的远程服务器。SSH 连接正常,gitlab CI 显示作业已通过,但远程服务器上的代码未更新。

我在以下位置创建了裸仓库:/home/repos/testDeploy.git

文件文件夹位于:/home/example.com/web/testDeploy

我添加了

我的 .gitlab-ci.yml 文件

stages:
  - deploy

deployment:
  stage: deploy
    environment:
      name: production
      url: http://www.example.com/testDeploy

   only:
      - master

   before_script:
      - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
      - eval $(ssh-agent -s)
      - chmod 600 ~/.ssh/id_rsa_gitlab && chmod 700 ~/.ssh
      - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

   script:
      - git remote add production ssh://user@server:port/home/repos/testDeploy.git
      - git push -f production master
      - echo "Deployed to production!"

另外,我有接收后挂钩:

#!/bin/sh
git --git-dir=/home/repos/testDeploy.git --work-tree=/home/example.com/web/testDeploy checkout -f

我在本地 repo 中进行更改,提交并将原始 master 推送到 gitlab。作业通过了,但正如我上面提到的,远程服务器上的文件没有更新。

gitlab 作业的输出是:

Fetching changes...
HEAD is now at 595db67 as
Checking out 595db67b as master...
Skipping Git submodules setup
$ which ssh-agent || ( apt-get update -y && apt-get install openssh-        client -y )
/usr/bin/ssh-agent
$ eval $(ssh-agent -s)
Agent pid 40589
$ chmod 600 ~/.ssh/id_rsa_gitlab && chmod 700 ~/.ssh
$ [[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking    no\n\n" > ~/.ssh/config
$ git branch
* (HEAD detached at 595db67)
master
production
$ git push -f production master
Everything up-to-date
$ echo "Deployed to production!"
Deployed to production!
Job succeeded

我做错了什么?你能帮我弄清楚吗?感谢您的所有回答。

标签: deploymentcontinuous-integrationgitlab

解决方案


推荐阅读