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. 关于Java引用,你必须知道这些

    引用 Java 虚拟机接管了所有的内存分配与回收工作,极大地减少了程序员的工作量和错误率.GC 在回收内存时,通常采用被称为可达性分析的算法判断一个对象是否可以回收.而在可达性分析中,对象的引用有着决 ...

  2. canvas生成圆图和微信小程序canvas圆图

    先在HTML中创建 img和canvas并设置id属性 <canvas id="canvas" width="500" height="500& ...

  3. 自动化测试之Selenium篇(一):环境搭建

    当前无论找工作或者是实际项目应用,自动化测试扮演着非常重要的角色,今天我们来学习下Selenium的环境搭建 Selenium简述 Selenium是一个强大的开源Web功能测试工具系列 可进行读入测 ...

  4. 直播软件开发之Java音视频解决方案:音视频基础知识

    概念 从信息论的观点来看,描述信源的数据是信息和数据冗余之和,即:数据=信息+数据冗余.音频信号在时域和频域上具有相关性,也即存在数据冗余.将音频作为一个信源,音频编码的实质是减少音频中的冗余. 拟信 ...

  5. leetcode56:restore-ip-addresses

    题目描述 现在有一个只包含数字的字符串,将该字符串重新存储成IP地址的形式,返回所有可能的情况. 例如: 给出的字符串为"25525511135", 返回["255.25 ...

  6. leetcode104:permutations

    题目描述 给出一组数字,返回该组数字的所有排列 例如: [1,2,3]的所有排列如下 [1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].  (以数字在数 ...

  7. leetcode110:combination-sum-ii

    题目描述 给出一组候选数C和一个目标数T,找出候选数中起来和等于T的所有组合. C中的每个数字在一个组合中只能使用一次. 注意: 题目中所有的数字(包括目标数T)都是正整数 组合中的数字 (a 1,  ...

  8. 面试题:你有没有搞混查询缓存和Buffer Pool

    一. 关注送书!<Netty实战> 文章公号号首发!连载中!关注微信公号回复:"抽奖" 可参加抽活动 首发地址:点击跳转阅读原文,有更好的阅读体验 使用推荐阅读,有更好 ...

  9. 简单STL

    string: string s="5418340"; sort(s.begin(),s.end()); cout<<s; /**begin是头迭代器,end是尾迭代器 ...

  10. prometheus监控golang服务实践

    一.prometheus基本原理介绍 prometheus是基于metric采样的监控,可以自定义监控指标,如:服务每秒请求数.请求失败数.请求执行时间等,每经过一个时间间隔,数据都会从运行的服务中流 ...