IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> GitHub也能CI/CD了 如何使用GitHub的Action? -> 正文阅读

[开发工具]GitHub也能CI/CD了 如何使用GitHub的Action?

GitHub也能CI/CD了!如何使用GitHub的Action?

一,什么是CI/CD

见另一篇文章

二,GitHub的Action

GitHub的Action是一种自动化的CI/CD工具,可以让你在GitHub上自动执行一些指令,比如构建、部署、推送代码等。

不光如此,在触发action之后,相当于我们有了一个暂时的服务器,用这个甚至可以白嫖一些计算资源,ひひひひひ

三,GitHub Actions 的使用方法

  1. 建立目录文件

.github/workflows/

在这个目录下建立一个名为name.yml的文件,内容如下:

name: Node.js CI

on:
  tag:
    branches: [ master ]
jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [ 16.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm publish

这个脚本会在每次git tag 时自动执行“npm publish”

下面会解释一下用法

on

on 指的是在哪个事件触发时执行,这里是在master git tag 时执行

其他常见的还有 push 等等

jobs

jobs 是一系列动作的集合

这里定义了一个build的动作

之后又对build进行了描述

runs-on 指定了这个动作在哪个系统上执行

strategy:
    matrix:
        node-version: [ 16.x]

这些定义了一个预定义的环境,在这个环境中有node,可以运行node命令

steps

steps具体描述了该怎么执行脚本

而use是使用了别人已经预先定义好的脚本,这里的actions/checkout@v2就是一个把仓库拉取到最新的脚本

我们将仓库拉到最新后就直接运行

npm ci  
npm publish

这样,就会在每次git tag 时自动执行npm publish

四,GitHub Actions的常见流程

一般的CI/CD流程是:

拉取代码 -> 构建 -> 测试 -> 推送代码或者部署

这里提供几个常用的

拉取

    - uses: actions/checkout@v2

部署

    - name: Deploy to Staging server
        uses: easingthemes/ssh-deploy@main
        env:
            SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
            SOURCE: "docs/.vuepress/dist/"
            REMOTE_HOST: ${{ secrets.DEPLOY_HOST }}
            REMOTE_USER: ${{ secrets.DEPLOY_USER }}
            TARGET: ${{ secrets.DEPLOY_REMOTE_DIR }}

发送Http请求

    - name: Axios Request
        # You may pin to the exact commit or the version.
        # uses: potaesm/github-actions-request@7c5145f0b707e9a1d7b7e71cf1812fcec2228fb5
        uses: potaesm/github-actions-request@1.0.7
        with:
            # `url` is the server URL that will be used for the request
            url: ${{ secrets.REQUEST_URI }}${{ job.status }}
            # `method` is the request method to be used when making the request
            method: get

五,Action的Security

当我们需要执行一些设计账号密码的操作的时候,就需要把这些信息隐藏起来。因为yml文件别人是可以看到的。

这时就需要secrets了

打开Github仓库页面,进入Setting

找到Secrets选项,在这个页面中,我们可以添加一个secret,这个secret就是我们需要的密码,

可以自定义名称和内容,这个内容别人是看不到的

之后,我们就可以在脚本中引入

- name: Deploy to Staging server
      uses: easingthemes/ssh-deploy@main
      env:
        SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
        SOURCE: "docs/.vuepress/dist/"
        REMOTE_HOST: ${{ secrets.DEPLOY_HOST }}
        REMOTE_USER: ${{ secrets.DEPLOY_USER }}
        TARGET: ${{ secrets.DEPLOY_REMOTE_DIR }}

这里使用了一个别人写好的脚本,可以把构建好的部署到服务器上,就是deploy的过程

${{ secrets.SERVER_SSH_KEY }}就是我们的私钥,这个私钥是我们在github上添加的,

${{ secrets.DEPLOY_HOST }}就是服务器的地址,

这样,我们可以在代码tag之后,就自动把构建产物部署到服务器上!

Last But Not Least

别忘了关注?,点赞👍,收藏💖,订阅📰, o(())o

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:14:29  更:2021-12-03 13:15:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:31:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码