自动化部署文件
maste.sh
#!/bin/bash # 设置Git仓库URL和本地目录 repo_url="git@47.120.38.53:yangxiongwei/guyu_admin.git" local_dir="/www/wwwroot/fuzhuangzl/" # 检查本地目录是否存在 if [ -d "$local_dir" ]; then # 切换到本地目录 cd "$local_dir/guyu_admin/" # 更新代码 sudo git pull origin master # 检查是否成功更新代码 if [ $? -eq 0 ]; then echo "代码更新成功" else echo "代码更新失败" fi else # 创建本地目录 mkdir -p "$local_dir" # 切换到本地目录 cd "$local_dir" # 克隆代码 git clone "$repo_url" # 检查是否成功克隆代码 if [ $? -eq 0 ]; then echo "代码克隆成功" else echo "代码克隆失败" fi fi
gitlab-ci.yml
# CI/CD 执行流程包含三个 Stage 可根据具体情况增加流程 # build 被首先执行。如果发生错误,本次 CI 立刻失败 # test 在 build 成功执行完毕后执行。如果发生错误,本次 CI 立刻失败 # deploy 在 test 成功执行完毕后执行。如果发生错误,本次 CI 失败 配置文件 stages: - deploy #部署 # job 名称,这里对应测试服务器 #develop: # stage: deploy # 对应上面的 Stage 部署成功 # only: # 监听的分支,这里只监听 develop 分支 代表测试环境 # - develop # script: # 执行的脚本的脚本,与注册 Gitlab Runner 流程中第 5 步选择的方式 shell 一致,下面会创建一个脚本案例 # - sh /var/shell/test.sh # 脚本的路径 # tags: # Runner 关联的标签 与注册 Gitlab Runner 流程中第 4 步输入的名称一致 # - test1 #job 名称,这里对应正式环境服务器 develop: tags: - test_runner stage: deploy only: - develop script: - sh /var/shell/test_gugu.sh master: tags: - test_runner stage: deploy only: - master script: - sh /var/shell/master_gugu.sh