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. Netcore中简单使用MemoryCache

    用到缓存架构,我们一般都会想到的Redis,因为它支持分布式,高可用,速率非常快.MemoryCache则相对较少提到,但是对于单体项目或者小型项目,memorycache还是是不错的选择.Memor ...

  2. 【Android Studio】安卓开发初体验2——Activity

    Activity是什么 Activity用于提供可视化用户界面的组件,可以与用户进行交互来完成某项任务,一个应用程序中可以包含零个或多个活动 Activity的创建 首先将左侧的Active Tool ...

  3. 什么是4G模块 4G模块的工作原理及特点

    什么是4G模块 4G模块,也被叫做4G通信模块或4G DTU模块,他是物联网行业具有4G通信功能的一种产品,通过4G模块,我们可以实现工业设备数据通过无线4G网络传输到远端控制中心,并从控制中心通过4 ...

  4. SpringBoot第九集:整合JSP和模板引擎Freemarker/Thymeleaf(2020最新最易懂)

    SpringBoot第九集:整合JSP和模板引擎(2020最新最易懂) 当客户通过前端页面提交请求后,我们以前是怎么做的?后端接收请求数据,处理请求,把响应结果交给模板引擎JSP,最后将渲染后的JSP ...

  5. ashx将datatable返回json数据

    1.直接使用JsonConvert.SerializeObject().将datatable放入  输出字符串 下面是测试:用webform+ashx作为接口. public class GetJso ...

  6. tp3.2验证码

    切换验证码 document.getElementById('img_code_1').src="__URL__/verify/"+Math.random(1,9999); 生成验 ...

  7. martini-拓扑映射

    如何为一个新的分子创建拓扑文件? 这是martini应用的关键.http://jerkwin.github.io/2016/08/31/Martini%E5%B8%B8%E8%A7%81%E9%97% ...

  8. linux netfilter nat1

    linux netfilter nat1 2020整理云笔记上传

  9. python之路 《六》函数

    ---恢复内容开始--- 为什么要有函数? 当你的老板要你写一个程序 1 def 函数0(): 2 # 如果cpu占用率>90 3 # 发送邮件 4 # 发出警报 5 6 def 函数1(): ...

  10. Debian 64位内核升级步骤

    安装相关依赖包 apt-get install bzip2 libncurses5-dev kernel-package zlib1g-dev gcc make kernel-package wget ...