Github Action

Action的创建

方式1:在项目根部,创建以下文件夹和文件

# 这里以我的 hexo 博客自动部署举例
.github
└── workflows
    └── hexo-deploy.yml

方式2:在网页端的action上按照提示进行

Action的编排

编排文件的结构

Action 主要由三部分构成:name、on 和 jobs

name: 叫什么(如果忽略会默认为yml的文件名)
on: 作用在什么地方(触发点)
jobs: 触发后干什么

yml 文件实例

# 部分1
name: 显示在action的名字
# 部分2
on: # 绑定的地方
  push: # 绑定推送
    branches: # 绑定推送的分支
      - master
# 部分3
jobs:
  # 干活标识 自定义
  build-and-deploy:
    # 干活内容
    # 运行服务器镜像(总共有几种选择,官网上可查)
    runs-on: ubuntu-latest
    # 运行条件判断
    if: github.event.repository.owner.id == github.event.sender.id
   	# 运行步骤
   	steps:
   	  - name: Checkout # 步骤标识,自定义
   	    # 这里是引用的意思
   	    # actions是官方定义的类似一个账号
   	    # checkout是仓库名
   	    # @后面是分支,也可以是 @v1 代表git标签
   	    uses: actions/checkout@master
   	  
      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          node-version: '12'
          
   	  - name: Setup Hexo
        # 环境变量 通常用来获取仓库设置的secrets(里面可能是账号的密码或者公/私钥之类的)
        env:
          ACTION_DEPLOY_KEY: ${{ secrets.DEPLOY }}
        # 运行命令
        run: |
          mkdir -p ~/.ssh
          echo "$ACTION_DEPLOY_KEY" > ~/.ssh/id_rsa
          chmod 700 ~/.ssh
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan github.com >> ~/.ssh/known_hosts
          git config --global user.email "armin"
          git config --global user.name "2730083511@qq.com"
          npm install hexo-cli -g
          npm install

      - name: Deploy
        run: |
          hexo clean
          hexo deploy -g

可以看到 jobs 下面是一个标识,再下面是 steps,再再下面才是执行命令。总共有 3 层。

Action 在不同仓库之间访问和推送

我们可以本地生成一对公/私钥,保存下来。

ssh-keygen -t rsa -C "comment" -f "aaa"

在私有仓库设置 Secrets,将私钥复制进去,然后在 action 里面,通过标识进行引用。命令里面将私钥复制到本地.ssh目录下。

在公有仓库设置 Deploy keys,将公钥复制进去,然后私有仓库的action就可以部署到这个公有仓库了。

简单理解,私钥是用来干活加密用的,公钥则是拿来当令牌或者房卡用的,就好SSH令牌和Deploy keys令牌。

action 代表了一个独立的服务器环境,你可以在这里进行一系列的流程作业。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值