Commit c2158474 by 罗启

Update .gitlab-ci.yml

parent c3931ad2
Pipeline #3145 canceled with stage
in 0 seconds
# 定义工作流的各个阶段,我们这里只需要一个 "deploy" 阶段 # 定义工作流的各个阶段
stages: stages:
- deploy - deploy
...@@ -7,31 +7,21 @@ deploy_to_production: ...@@ -7,31 +7,21 @@ deploy_to_production:
# 将这个任务归属到 "deploy" 阶段 # 将这个任务归属到 "deploy" 阶段
stage: deploy stage: deploy
# 指定运行此任务的 Docker 镜像,我们用一个基础镜像 # 指定运行此任务的 Docker 镜像
image: alpine:latest image: alpine:latest
# 在主脚本运行前执行的准备工作 # 在主脚本运行前执行的准备工作
before_script: before_script:
# 安装 ssh 客户端和 ssh-agent
- 'which ssh-agent || ( apk add --update --no-cache openssh-client )' - 'which ssh-agent || ( apk add --update --no-cache openssh-client )'
# 启动 ssh-agent
- eval $(ssh-agent -s) - eval $(ssh-agent -s)
# 将存储在 GitLab CI/CD 变量中的私钥添加到 ssh-agent
# $SSH_PRIVATE_KEY 是您需要在 GitLab 网页上设置的变量名
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
# 创建 .ssh 目录并设置权限
- mkdir -p ~/.ssh - mkdir -p ~/.ssh
- chmod 700 ~/.ssh - chmod 700 ~/.ssh
# (可选,但更安全)将服务器的公钥添加到 known_hosts,避免交互式提示
# $SSH_KNOWN_HOSTS 也是一个 CI/CD 变量
- echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts - echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts
# 任务的核心执行脚本 # 任务的核心执行脚本
script: script:
- echo "准备连接到部署服务器..."
# 使用 ssh 命令连接你的服务器
# $SSH_USER, $SSH_HOST, $SSH_PORT 都是您需要在 GitLab 设置的变量
- | - |
ssh -p $SSH_PORT $SSH_USER@$SSH_HOST " ssh -p $SSH_PORT $SSH_USER@$SSH_HOST "
echo '✅ 连接服务器成功,开始执行部署脚本...' echo '✅ 连接服务器成功,开始执行部署脚本...'
...@@ -48,7 +38,7 @@ deploy_to_production: ...@@ -48,7 +38,7 @@ deploy_to_production:
echo '🚀 部署流程执行完毕!' echo '🚀 部署流程执行完毕!'
" "
# 定义触发此任务的规则 # 使用 "only" 关键字来控制触发分支
rules: # 这段配置表示,这个任务只会在 "master" 分支上运行
# 只有当代码被推送到 master 分支时,才执行这个任务 only:
- if: '$CI_COMMIT_BRANCH == "master"' - master
\ No newline at end of file \ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment