利用CLI(命令行界面)实现自动化部署可以显著提高开发效率和减少人为错误。以下是一个基本的步骤指南,帮助你通过CLI实现自动化部署:
# 更新依赖
pip install -r requirements.txt
# 运行测试
pytest
# 构建项目
python setup.py build
# 部署到目标环境
scp dist/* user@target_server:/path/to/deploy
ssh user@target_server "systemctl restart my_service"
.gitlab-ci.yml文件:在项目根目录下创建一个.gitlab-ci.yml文件。stages:
- build
- deploy
build_job:
stage: build
script:
- pip install -r requirements.txt
- pytest
- python setup.py build
deploy_job:
stage: deploy
script:
- scp dist/* user@target_server:/path/to/deploy
- ssh user@target_server "systemctl restart my_service"
only:
- master
.github/workflows/deploy.yml文件。name: Deploy to Production
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: pytest
- name: Build project
run: python setup.py build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Deploy to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_SSH_KEY }}
source: dist/**
target: /path/to/deploy
- name: Restart service
run: ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} "systemctl restart my_service"
为了安全地进行远程部署,建议配置SSH密钥认证:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
ssh-copy-id user@target_server
.gitlab-ci.yml中使用ssh-agent。deploy.yml中使用secrets。通过以上步骤,你可以利用CLI命令行实现自动化部署,提高开发和部署的效率。根据具体需求,你可以进一步优化和扩展CI/CD流程。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。