Task进行CI/CD简单又适用

一、下载和环境配置

下载

https://github.com/go-task/task

环境配置

主要是在系统path中增加task的目录

二、初始化task文件

b 复制代码
task --init

这个目录下就会生成一个Taskfile.yml,接下来我们就写补充我们自己的

三、编写补充自己的内容

先看代码

b 复制代码
# yaml-language-server: $schema=https://taskfile.dev/schema.json

version: '3'

vars:
  GREETING: Hello, world!
  SSH_CMD: "C:\\Windows\\System32\\OpenSSH\\ssh.exe"
  SCP_CMD: "C:\\Windows\\System32\\OpenSSH\\scp.exe"
  SERVER_DEPLOY_DIR: /home/zeng
  JAR_FILE: eureka-server-1.0-SNAPSHOT.jar

tasks:
  default:
    desc: Print a greeting message
    cmds:
      - echo "{{.GREETING}}"
    silent: true
  build:
    desc: Build the project
    cmds:
      - echo "Building the project..."
      - mvn clean compile
      - echo "Build complete."
  package:
    desc: Package the project
    cmds:
      - echo "Packaging the project..."
      - mvn package -DskipTests
      - echo "Package complete."
  start:
    desc: Start the application,本地运行
    deps:
      - package  #确保先打包
    cmds:
      - echo "Starting the application..."
      - java -jar ./target/eureka-server-1.0-SNAPSHOT.jar
  deploy:
    desc: Deploy the application to the server,部署到服务器
    deps:
      - package  #确保先打包
    cmds:
      - echo "Deploying the application to the server..."
      # - C:\Windows\System32\OpenSSH\ssh.exe zeng@192.168.50.252 "sudo mkdir -p /home/zeng/mytest"
      - C:\Windows\System32\OpenSSH\scp.exe ./target/eureka-server-1.0-SNAPSHOT.jar zeng@192.168.50.252:/home/zengh/
      - C:\Windows\System32\OpenSSH\ssh.exe zeng@192.168.50.252 "if [ -f /home/zeng/{{.PROJECT_NAME}}.pid ]; then kill \$(cat {{.SERVER_DEPLOY_DIR}}/{{.PROJECT_NAME}}.pid) || true; rm -f {{.SERVER_DEPLOY_DIR}}/{{.PROJECT_NAME}}.pid; fi"
      - C:\Windows\System32\OpenSSH\ssh.exe  zeng@192.168.50.252 "cd /home/zeng && nohup java -jar eureka-server-1.0-SNAPSHOT.jar > logs/mytest.log 2>&1 & echo \$! > mytest.pid"
  

再看执行,结合3张图片,想必你已经看懂了。

可以定义多个task

task的名字可以自己定义,

执行的时候用task [名字]来执行



四、先要取消服务器密码登录

因为ssh是需要输入密码的,我们是希望不需要中间人为干预,使用密钥认证

第一步:

b 复制代码
ssh-keygen -t rsa -b 2048
#一路回车就好

生成两个文件:

把其中的id_rsa.pub公钥。复制里面的内容到服务器的~/.ssh/authorized_keys文件中:

方法1:执行

b 复制代码
ssh-copy-id 用户名@服务器地址

方法2:直接写字板打开复制粘贴

五、仔细分析这里的任务

有基础的,我就不一句一句解释了。

相关推荐
独断万古他化3 天前
AI 赋能自动化测试实战:从用例生成到 CI/CD 全流程落地
人工智能·ci/cd·测试
郝学胜-神的一滴6 天前
CMake赋能持续集成|自动化测试落地的进阶指南 ✨
c++·ci/cd·软件工程·软件构建
AI成长日志6 天前
【GitHub开源项目】Harness CI/CD平台深度解析:架构设计、核心功能与实战指南
ci/cd·开源·github
清水白石0087 天前
Python 项目 CI/CD 信心模型:证据驱动部署,从“勇敢上线”到“零风险发版”实战指南
驱动开发·python·ci/cd
alan07217 天前
【持续集成、持续交付】jenkins实现CI/CD
运维·ci/cd·jenkins
龙智DevSecOps解决方案7 天前
TESSY v5.1 新功能详解 :引入 Hyper Coverage 与基于变更的测试,大幅缩短 CI 测试时间
自动化测试·软件测试·ci/cd·单元测试·嵌入式开发·tessy
Rabbit_QL7 天前
【CI/CD】01_为什么手动部署是个危险游戏
游戏·ci/cd
亚马逊云开发者7 天前
告别手动部署:在 Amazon EKS 上用 CodePipeline + Argo CD 搭建 GitOps CI/CD
elasticsearch·ci/cd·kubernetes
清水白石0087 天前
《Python 静态检查链:格式化、Lint、类型检查、安全扫描全攻略——CI 阻断策略与团队平衡实践》
python·安全·ci/cd
Rabbit_QL8 天前
【CI/CD】02_一次 git push 后发生了什么?CI 是怎么工作的
git·ci/cd