通过CI/CD工具实现代码自动上传和更新到新浪云服务器
随着软件开发和部署方式的不断演进,持续集成(CI)和持续交付(CD)已经成为现代软件开发流程中不可或缺的一部分。它们可以帮助团队更快地构建、测试和部署应用程序,同时减少人为错误。本文将介绍如何使用CI/CD工具实现代码的自动化上传和更新到新浪云服务器。
选择合适的CI/CD平台
目前市面上有许多优秀的CI/CD平台可供选择,例如GitHub Actions、GitLab CI、Jenkins、CircleCI等。这些平台都提供了丰富的功能和灵活的配置选项,可以根据项目需求和个人喜好进行选择。为了简化操作,本示例以GitHub Actions为例。
配置SSH密钥对
在开始之前,您需要确保本地计算机与新浪云服务器之间建立了安全连接。这通常涉及到创建一对SSH密钥,并将公钥添加到远程服务器上。具体步骤如下:
1. 使用命令行工具生成新的SSH密钥对:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
2. 将生成的公钥复制到剪贴板中:cat ~/.ssh/id_rsa.pub | pbcopy
3. 登录到新浪云控制台,在对应实例的安全设置里添加刚才复制的内容作为授权登录凭据。
编写GitHub Action工作流文件
接下来,在项目的根目录下新建一个名为“.github/workflows/deploy.yml”的文件。这个YAML格式的工作流定义了每次提交时应该执行的任务序列。下面是一个简单的示例:
name: Deploy to Sina Cloudon: push: branches: - main 监听main分支上的推送事件jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up SSH key uses: webfactory/ssh-agent@v0.5.2 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} 这里引用的是存储在仓库Secrets中的私钥变量 - name: Sync files via rsync over SSH run: | mkdir -p ~/.ssh/ echo -e "Host sina-cloudntHostName your-server-ipntUser root" > ~/.ssh/config rsync -avz --delete -e 'ssh -i /home/runner/.ssh/id_rsa' ./dist/ root@sina-cloud:/var/www/html/
请注意上述代码中的几个关键点:首先我们监听了“main”分支上的所有推送;然后通过webfactory/ssh-agent插件加载了私钥以便后续能够顺利地通过SSH协议访问目标机器;最后利用rsync命令同步最新版本的应用程序文件到指定路径。
管理敏感信息
由于涉及到重要的身份验证资料如SSH私钥,直接硬编码在代码里显然是不安全的做法。幸运的是,GitHub允许我们在仓库级别设置环境变量或称为“secrets”,这样就可以放心地把敏感数据存放在那里而不会暴露给他人。只需前往仓库页面左侧菜单栏里的Settings->Secrets & variables->Actions Secrets,按照提示依次输入名称(例如SSH_PRIVATE_KEY)及其对应的值即可。
通过合理运用CI/CD技术,我们可以大大简化从代码提交到最后上线之间的繁琐过程。以上只是初步介绍了怎样借助GitHub Actions来完成这项任务,实际上还有很多其他方法可以探索尝试。希望这篇文章能为那些想要提高工作效率的朋友提供一些参考价值。
本文由阿里云优惠网发布。发布者:编辑员。禁止采集与转载行为,违者必究。出处:https://aliyunyh.com/78134.html
其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。