基于github的CICD实践

2,750 阅读1分钟

前言

CICD 即持续集成持续部署,可以说是devops程序员的基础吧,目前市场主流的方案是 Jenkins+gitlab的组合,我之前的东家有用过腾讯云的coding中单持续集成部署,感觉简单明了,不用自己维护jekins等中间件。github在2018年十月份推出了githubaction 即基于github的 cicd,入门教程参考阮雪峰大神的博客 www.ruanyifeng.com/blog/2019/0…

强烈建议大家先看文档再看入门,分清先后顺序,让我们少走弯路

文档奉上 docs.github.com/cn/actions

github action实战

首先要配置github环境

image.png

然后点击Secrets给环境变量赋值

image.png

maven.yml配置文件


on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK 1.8
        # 这里使用java11的环境, 其他项目在github action中找到对应的语言环境就行
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Build with Maven
        # 这里maven的打包命令, 其他项目修改为对应的打包命令
        run: |
          mvn package
      - name: scp jar upload tianyi cloud server
        uses: kostya-ten/ssh-server-deploy@v4
        with:
          scp_source: target/github-action-guide-0.0.1-SNAPSHOT.jar
          scp_target: /usr/opt
          host: ${{secrets.TIANYI_SERVER_IP}}
          username: root
          password: ${{ secrets.TIANYI_SERVER_PWD }}
      - name: Deploy to tianyi cloud server
        uses: fifsky/ssh-action@master
        with:
          host: ${{secrets.TIANYI_SERVER_IP}}
          user: root
          pass: ${{ secrets.TIANYI_SERVER_PWD }}
          command: cd /usr/opt && java -jar github-action-guide-0.0.1-SNAPSHOT.jar

执行结果

image.png

现在还有一个小的缺陷就是 执行部署到远程服务器端命令的时候会把springboot应用的启动日志打印在github页面造成 job延期,超时.

github :github.com/rottenmu/Gi…