Python自动化发布的几个步骤

    在软件开发过程中,自动化发布是一个重要的环节,它可以提高发布效率、减少人为错误,并且能够确保发布过程的一致性。本文将介绍使用Python实现自动化发布的几个步骤:本地编译、本地压缩和服务器上传解压。

1. 本地编译

     在进行自动化发布之前,首先需要确保代码在本地能够成功编译。这一步骤通常包括以下几个操作:

  • 检查代码库的完整性和更新性。

  • 安装所需的依赖库和工具。

  • 执行编译命令,生成可执行文件或构建项目。

可以使用Python的os.system来执行命令行操作,例如:

 
 
import os
def buildProject(proDir):
    cmd1 = 'cd ' + proDir
    cmd2 = 'npm run build'
    cmd = cmd1 + ' && ' + cmd2
    os.system(cmd)

2. 本地压缩

    编译成功后,下一步是将生成的文件打包成压缩包,以便于上传到服务器。Python 的zipfile模块提供了压缩和解压缩文件,的功能,可以使用以下代码实现本地压缩:

 
 
import zipfile
def zipDir(dirpath, outFullName):
    zip = zipfile.ZipFile(outFullName, "w", zipfile.ZIP_DEFLATED)
    for path, dirnames, filenames in os.walk(dirpath):
        # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
        fpath = path.replace(dirpath, '')
        fpath = fpath and fpath + os.sep or ''


        for filename in filenames:
            zip.write(os.path.join(path, filename), os.path.join(fpath, filename))
    print('压缩文件 => ' + outFullName)
    zip.close()

3. 上传到服务器解压

    最后一步是将压缩包上传到服务器,并在服务器上解压。可以使用 Python 的paramiko库来实现SSH连接和文件传输,以下是一个简单的示例:

# pip3 install paramiko
import paramiko


# pip3 install scp
from scp import SCPClient


def uploadZipThenUnzip(targetZip,remote_path, remote_zip):
    host = "xx.xx.xx.xx"  #服务器ip地址
    port = 22  # 端口号
    username = "root"  # ssh 用户名
    password = "******"  # 密码


    ssh_client = paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
    ssh_client.connect(host, port, username, password)


    # upload
    scpclient = SCPClient(ssh_client.get_transport(),socket_timeout=15.0)
    try:
        scpclient.put(targetZip, remote_path)
    except FileNotFoundError as e:
        print("系统找不到指定文件 => " + remote_path)
    else:
        print("文件上传成功 => " + remote_path)


    # unzip
    print('4.unzip')
    stdin,stdout,stderr = ssh_client.exec_command('unzip -o ' + remote_zip + ' -d ' + remote_path)
    out = stdout.read()
    err = stderr.read()
    if out:
        print('解压成功 => ' + remote_zip)
    else:
        print('解压失败 =>' + remote_zip)
    ssh_client.close()

    上述代码中,host是服务器的IP地址,usernamepassword是登录服务器的用户名和密码。scpclient.put函数用于上传文件,exec_command函数用于在服务器上执行命令。

    通过以上三个步骤,我们可以实现 Python 自动化发布的流程,提高发布效率并减少人为错误。当然,根据实际需求,你还可以添加其他步骤,如自动化测试、数据库迁移等,以满足具体的发布需求。    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值