github actions 是什么?

github actions是github的持续集成及自动化工作流服务,使用起来都比较方便。大部分github actions都可以在https://github.com/marketplace?type=actions中找到。

怎么使用github actions

怎么使用

在github项目目录下,根目录下新建一个文件.github/workflow/xxx.yml,在xxx.yml写你需要自动化工作流的服务。

有问题多查查以下两个文档:

基本语法

GitHub Actions 官方文档

name: github action的名字

on:
push:
branches:
- 触发部署的分支
paths:
- 下列文件的变更触发部署
paths-ignore:
- 下列文件的变更不触发部署 jobs: 工作流程运行包括一项或多项作业。 作业默认是并行运行。
deploy: runs-on: 使用的系统镜像 steps: 自动化步骤 - name: 步骤名字
uses: 使用封装好的步骤镜像
env: 环境变量
环境变量的 map 可用于工作流程中的所有作业和步骤
with:
有些操作要求必须通过 with 关键词设置输入。 请查阅操作的自述文件,确定所需的输入。
run: |
要运行的脚本

几个使用的例子

  • 1、部署到阿里云

    name: deploy to aliyun
    
    on:
    push:
    branches:
    - ali-ecs # 只在ali-ecs上push触发部署
    paths-ignore: # 下列文件的变更不触发部署,可以自行添加
    - README.md
    - LICENSE jobs:
    deploy: runs-on: ubuntu-latest # 使用ubuntu系统镜像运行自动化脚本 steps: # 自动化步骤
    - uses: actions/checkout@v2 # 第一步,下载代码仓库 - name: Deploy to Server # 第二步,rsync推文件
    uses: AEnterprise/rsync-deploy@v1.0 # 使用别人包装好的步骤镜像
    env:
    DEPLOY_KEY: ${{ secrets.ACCESS_TOKEN }} # 引用配置,SSH私钥
    ARGS: -avz --delete # rsync参数
    SERVER_PORT: '22' # SSH端口
    FOLDER: ./ # 要推送的文件夹,路径相对于代码仓库的根目录
    SERVER_IP: ${{ secrets.REMOTE_HOST }} # 引用配置,服务器的host名(IP或者域名domain.com)
    USERNAME: ${{ secrets.SSH_USERNAME }} # 引用配置,服务器登录名
    SERVER_DESTINATION: /home/zhihu-api # 部署到目标文件夹
    - name: Restart server # 第三步,重启服务
    uses: appleboy/ssh-action@master
    with:
    host: ${{ secrets.REMOTE_HOST }} # 下面三个配置与上一步类似
    username: ${{ secrets.SSH_USERNAME }}
    key: ${{ secrets.ACCESS_TOKEN }}
    # 重启的脚本,根据自身情况做相应改动,一般要做的是migrate数据库以及重启服务器
    script: |
    cd /home/zhihu-api
    npm install
    npm run start
  • 2、部署轮子到npm

    name: publish
    
    on:
    push:
    branches: master
    paths:
    - 'lib/*' jobs:
    build: runs-on: ubuntu-latest steps:
    - uses: actions/checkout@v2
    - uses: actions/setup-node@v1
    with:
    node-version: '12'
    registry-url: 'https://registry.npmjs.org'
    - name: Release
    run: |
    git config --local user.email "action@github.com"
    git config --local user.name "GitHub Action"
    npx version-from-git --allow-same-version --template 'master.short'
    - name: Publish to npmjs
    run: |
    npm publish --access public
    env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

使用github actions 完成一些自动化工作的更多相关文章

  1. 5 分钟教你快速掌握 GitHub Actions 自动部署博客

    自从 GitHub 宣布 GitHub Actions 在平台上对所有开发人员和存储库可用以来,GitHub Actions 越来越受欢迎.很多第三方平台在生态系统中有速度等限制,将进一步推动开发人员 ...

  2. GitHub Actions 完成CI CD

    在之前我的部署.版本控制.CI.CD都是在Jenkins 下来完成的 在前几天看到github上的一个新玩具actions,简直惊为天人 它能在你的仓库触发事件(Push,Pull,issue,... ...

  3. GitHub Actions 工作流

    今天打开github上面的 项目 突然 一个github actions 的提示, 进去后显示: 由于项目是Maven 创建的 选择Maven 进入:  初步看到代码:  大概意思就是 我们push ...

  4. Github原生CI/CD,初尝Github Actions

    Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...

  5. Github Actions教程:运行python代码并Push到远端仓库

    我自己做了一个网站,这个网站会使用一个python脚本来生成. 具体生成的方法是python脚本会读取目录下的csv文件,将每一行数据解析成固定格式,然后生成html文件,最后需要将修改后的文件自动p ...

  6. 使用 GitHub Actions 实现 Hexo 博客自动部署

    一.Hexo 相关知识点 静态博客简单,但是发布博文时稍显麻烦,一般需要下面两步: hexo clean hexo g -d // 相当于 hexo g + hexo d 如果考虑到同步源文件,还需要 ...

  7. vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器

    最新博客链接 Github链接 查看此文档前应先了解,vuepress基本操作 参考官方文档进行配置: vuepress-theme-reco VuePress SamKirkland / FTP-D ...

  8. Hexo+GitHub Actions 完美打造个人博客

    Hexo简介 Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架.大家可以进入hexo官网进行详细查看, ...

  9. Github Actions简单部署一个vue/react项目

    大体介绍 本文对github actions部署前端项目做一个简单的总结,总体来说,我感觉用它想要部署一个前端项目,可以说非常简单,简单得令人震惊

随机推荐

  1. Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信

    Linux 系统编程 学习:07-基于socket的网络编程2:基于 UDP 的通信 背景 上一讲我们介绍了网络编程的一些概念.socket的网络编程的有关概念 这一讲我们来看UDP 通信. 知识 U ...

  2. 转载:解密Redis持久化

    本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述.文章非常长,也很值 ...

  3. Table is marked as crashed and should be repaired 解决办法

    遇到这个问题几个敲命令轻松搞定 1.首先进入mysql命令台: mysql -u root -p 回车  输入密码 2.查询所有的库 mysql> show databases; 3.进入数据库 ...

  4. CSS3之径向渐变

        设置最终形状参数: ellipse circle 设置长半轴和短半轴 设置椭圆对称中心 设置色标 输出代码: radial-gradient(circle closest-side at ce ...

  5. Gromacs命令-Chapter1

    Gromacs的命令非常多,下面我将我最近用到的先总结一下.标题上也写了这只是Chapter1,以后有新的会继续写Chapter2...等等. 下面这个网址http://manual.gromacs. ...

  6. history命令的优化

    前言 默认的history记录的信息有限,我们对这个进行一定的扩充 我们看下大概哪几个需求 记录用户登陆的ip 记录用户的名称 记录执行命令的时间 具体实现 我们看下应该怎么做这个,尽量在不改变用户的 ...

  7. Java编码和字符集(详解)

    [1]什么是编码? [2]通过生活案例: [3]由权威机构形成的编码表才可以称之为:字符集 ASCII 英文字符集 用一个字节的7位表示 IOS8859-1 西欧字符集 用一个字节的8位表示 GB23 ...

  8. JavaScript高级程序设计(第四版) -- 随笔 -- 数组(未完)

    数组方法 .every() 与 .some() 传给两个个方法的函数都接收3个参数:数组元素.元素索引和数组本身. .every() -- 对于每一项都需要返回true,它才会返回true 若中途有一 ...

  9. Angualr 内置工具-SelectionModel

    SelectionModel: 被用来控制选中一个和多个item时候的逻辑.例如下拉菜单,复选框选中等,非常方便. 引入:import{SelectionModel}from'@angular/cdk ...

  10. RestPack Java实现Html转PDF文件

    最近公司需要将前端一个图表统计导出为pdf.前端导出显示的pdf还是可以的,但是将会导致页面不可用与卡死状态.所以由后端寻找解决方案. 以下为解决方案调研 https://www.cnblogs.co ...