使用github actions 完成一些自动化工作
github actions 是什么?
github actions是github的持续集成及自动化工作流服务,使用起来都比较方便。大部分github actions都可以在https://github.com/marketplace?type=actions中找到。
怎么使用github actions
怎么使用
在github项目目录下,根目录下新建一个文件.github/workflow/xxx.yml,在xxx.yml写你需要自动化工作流的服务。
有问题多查查以下两个文档:
基本语法
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 完成一些自动化工作的更多相关文章
- 5 分钟教你快速掌握 GitHub Actions 自动部署博客
自从 GitHub 宣布 GitHub Actions 在平台上对所有开发人员和存储库可用以来,GitHub Actions 越来越受欢迎.很多第三方平台在生态系统中有速度等限制,将进一步推动开发人员 ...
- GitHub Actions 完成CI CD
在之前我的部署.版本控制.CI.CD都是在Jenkins 下来完成的 在前几天看到github上的一个新玩具actions,简直惊为天人 它能在你的仓库触发事件(Push,Pull,issue,... ...
- GitHub Actions 工作流
今天打开github上面的 项目 突然 一个github actions 的提示, 进去后显示: 由于项目是Maven 创建的 选择Maven 进入: 初步看到代码: 大概意思就是 我们push ...
- Github原生CI/CD,初尝Github Actions
Github 原生 CI/CD,初尝 Github Actions Intro Github 目前已经推出了自己的 CICD 服务 -- Github Actions,而且比微软的 Azure Dev ...
- Github Actions教程:运行python代码并Push到远端仓库
我自己做了一个网站,这个网站会使用一个python脚本来生成. 具体生成的方法是python脚本会读取目录下的csv文件,将每一行数据解析成固定格式,然后生成html文件,最后需要将修改后的文件自动p ...
- 使用 GitHub Actions 实现 Hexo 博客自动部署
一.Hexo 相关知识点 静态博客简单,但是发布博文时稍显麻烦,一般需要下面两步: hexo clean hexo g -d // 相当于 hexo g + hexo d 如果考虑到同步源文件,还需要 ...
- vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器
最新博客链接 Github链接 查看此文档前应先了解,vuepress基本操作 参考官方文档进行配置: vuepress-theme-reco VuePress SamKirkland / FTP-D ...
- Hexo+GitHub Actions 完美打造个人博客
Hexo简介 Hexo是一款基于Node.js的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在GitHub和Coding上,是搭建博客的首选框架.大家可以进入hexo官网进行详细查看, ...
- Github Actions简单部署一个vue/react项目
大体介绍 本文对github actions部署前端项目做一个简单的总结,总体来说,我感觉用它想要部署一个前端项目,可以说非常简单,简单得令人震惊
随机推荐
- Software Construction内容归纳
本篇博文是对于2020春季学期<软件构造>课程的总结归纳,由于原先编辑于word,格式不方便直接导入该博客,可以到本人github中进行自取. https://github.com/zqy ...
- ## 【分布式事务】面试官问我:MySQL中的XA事务崩溃了如何恢复??
写在前面 前段时间搭建了一套MySQL分布式数据库集群,数据库节点有12个,用来测试各种分布式事务方案的性能和优缺点.测试MySQL XA事务时,正当测试脚本向数据库中批量插入数据时,强制服务器断电! ...
- python爬虫使用scrapy框架
scrapy框架提升篇 关注公众号"轻松学编程"了解更多 1.创建启动爬虫脚本 在项目目录下创建start.py文件: 添加代码: #以后只要运行start.py就可以启动爬虫 i ...
- 【Luogu】P1306 斐波那契公约数 题解
原题链接 嗯...很多人应该是冲着这个标题来的 (斐波那契的魅力) 1.分析题面 点开题目,浏览一遍题目,嗯?这么简单?还是蓝题? 再看看数据范围,感受出题人深深的好意... \(n,m \leq 1 ...
- 【Luogu】P1436 棋盘分割 题解
嗯,点开题目,哇!是一道闪亮亮的蓝题! 不要被吓到了,其实,这道题就是一个简单的DP啦! 我们设 \(f[x1][y1][x2][y2][c]\) 为以 \((x1,y1)\) 为左上角,以 \((x ...
- springboot + post 中文乱码
去检查你的 filter 配置,是否配置了一个最高优先级的 filter, 这个最高优先级的 filter 会影响 springboot 自动配置的 CharacterEncodingFilter.原 ...
- 直播平台搭建之音视频开发:认识主流视频编码技术H.264
H.264简介 什么是H.264?H.264是一种高性能的视频编解码技术.目前国际上制定视频编解码技术的组织有两个,一个是"国际电联",它制定的标准有H.261.H.263.H.2 ...
- 【技术分享】小乖乖的 Linux/Ubuntu 历险记
本文将同步发布于 WHU-TD 的博客. 这是一篇自带故事背景的博客. 总所周知,写的多,错的多,更何况一个刚刚接触 Linux 的小白.虽然只是介绍一些非常基础的内容,还是希望大家在发现错误时可以及 ...
- 烧录时发生:permission denied:'/dev/ttyUSB0'问题的解决
在执行make flash的过程中出现错误: 解决办法: sudo chmod -R 777 /dev/ttyUSB0 这种设置在下次使用的,又会出现这种问题,还要重新设置 永久性的设置可以使用下面这 ...
- UI自动化中无头浏览器的应用
因为某次工作中写了个脚本要来回跑,还要在本机上做很多其他的事情,所以就上网找了个方法,无头浏览器,这样就不会浏览器来回弹出来,执行用例还会很快. 废话不多说,直接放代码: #coding=utf-8 ...