故事
首页
指南
  • Java
  • Python
  • Linux
  • 前端
  • Docker
  • 实践
  • 折腾
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
首页
指南
  • Java
  • Python
  • Linux
  • 前端
  • Docker
  • 实践
  • 折腾
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 工具

    • git命令整理
    • Markdown基础语法
    • Typora、PicGo、七牛云实现markdown图片自动上传图床
    • iterm2配合oh-my-zsh配置个性主题终端
    • iterm2配置ssh快速连接
    • 各系统下校验文件一致性
    • linux设置macOS时间机器server
    • book-searcher电子书镜像站点
  • 环境

    • Windows下Docker Desktop安装
    • git配置socks5代理解决github上down代码慢的问题
    • mysql启动报错排查及处理
    • macOS开启终端的代理
    • git配置多ssh-key && Gitee 和 Github 同步更新
    • docker+jenkins+gitee自动化部署vue项目
    • 使用github actions进行持续部署
      • Github Actions是什么
      • 使用
        • 配置
        • 配置access_token
        • Deploy.sh
      • 流程梳理
    • macos开机自动执行脚本
    • powershell美化
  • 设计模式

    • 策略模式的具体实现
  • 简介
  • actions
  • 环境
storyxc
2022-04-21

使用github actions进行持续部署

# 使用github actions进行持续部署

Github Actions官方文档https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#name

# Github Actions是什么

Github推出的持续集成工具

# 使用

# 配置

Github Actions的配置文件叫做workflow文件,需要存放在repo根路径下的./github/workflows目录中。workflow文件使用yaml格式编写,文件名可以自定义,后缀统一为yml,一个repo中可以有多个workflow,Github只要发现./github/workflows目录中有.yml文件就会自动运行。

本博客的workflow文件:

# 自定义当前执行文件的名称
name: vuepress
# 整个流程在main分支发生push事件时触发
on:
  push:
    branches:
      - main
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest # 运行在ubuntu-latest环境的虚拟机中
    strategy:
      matrix:              # 矩阵
        node-version: [10.x]
    steps: # 每个 job 由多个 step 构成,它会从上至下依次执行。
    # 获取仓库源码
    - name: Checkout
      uses: actions/checkout@v2         # github actions提供了一些官方的action,例如checkout @v2是action的版本
    # 安装node
    - name: Use Node.js ${{ matrix.node-version }} # 定义好的node版本
      uses: actions/setup-node@v1 # 作用:安装nodejs
      with:
        node-version: ${{ matrix.node-version }} # 定义好的node版本
    # 构建和部署
    - name: Deploy
      env: # 环境变量
        GITHUB_TOKEN: ${{ secrets.vuepress_actions_access_token }}
      run: npm install && npm run deploy # npm run deploy需要在package.json中定义"deploy: bash deploy.sh"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

steps:

  • checkout源码到workflow中
  • 安装指定版本的node环境
  • 从仓库的设置中读取配置好的access_token,安装依赖,执行项目中的deploy.sh脚本

# 配置access_token

  1. 在github个人设置页面找到开发者设置

image-20220421224529199

  1. 选择个人access tokens,选择生成新token

image-20220421224739995

  1. 将生成好的token保存,关闭页面后将不会再显示此token,然后回到仓库保存

repo

# Deploy.sh

#!/usr/bin/env sh

# 确保脚本抛出遇到的错误
set -e

# 生成静态文件
npm run build

# 进入生成的文件夹
cd docs/.vuepress/dist

# 如果是发布到自定义域名
echo 'blog.storyxc.com' > CNAME

if [ -z "${GITHUB_TOKEN}" ]; then
  echo "GITHUB_TOKEN is not set"
  exit 1
else
  msg='github actions自动部署'
  githubUrl=https://storyxc:${GITHUB_TOKEN}@github.com/storyxc/vuepress.git
  git config --global user.name "storyxc"
  git config --global user.email "storyxc@163.com"
fi

git init
git add -A
git commit -m "${msg}"

git push -f $githubUrl master:gh-pages

cd -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

这里我是用了github pages发布,然后配置了自定义域名,这个域名要在服务商域名解析配置CNAME,然后在仓库的page页面添加自定义域名即可

image-20220421230458141

# 流程梳理

  • 配置workflow,推送代码到触发job的分支
  • github actions会根据workflow中的配置拉代码,打包,然后调用deploy.sh,将生成的静态文件推送到gh-page分支
  • gh-page分支配置github page,自定义域名
编辑 (opens new window)
#github#github actions#ci
上次更新: 2023/03/24, 23:40:02
docker+jenkins+gitee自动化部署vue项目
macos开机自动执行脚本

← docker+jenkins+gitee自动化部署vue项目 macos开机自动执行脚本→

Theme by Vdoing | Copyright © 2019-2023 story | 豫ICP备19046036号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式