Action的创建
方式1:在项目根部,创建以下文件夹和文件
1 2 3 4
| .github └── workflows └── hexo-deploy.yml
|
方式2:在网页端的action上按照提示进行
Action的编排
编排文件的结构
Action 主要由三部分构成:name、on 和 jobs
name: 叫什么(如果忽略会默认为yml的文件名)
on: 作用在什么地方(触发点)
jobs: 触发后干什么
—— name0
—— on push branches master
—— Jobs name1 runs-on steps name run env uses
yml 文件实例
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| name: 显示在action的名字
on: push: branches: - master
jobs: build-and-deploy: runs-on: ubuntu-latest if: github.event.repository.owner.id == github.event.sender.id steps: - name: Checkout uses: actions/checkout@master - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: '12' - name: Setup Hexo 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.name "${{ vars.USER_NAME }}" git config --global user.email "${{ vars.USER_EMAIL }}" npm install hexo-cli -g npm install
- name: Deploy run: | hexo clean hexo deploy -g
|
可以看到 jobs
下面是一个 标识
,再下面是 steps
,再再下面才是执行 命令
。总共有 3 层。
Action在不同仓库之间访问和推送
我们可以本地生成一对公/私钥,保存下来。
1
| ssh-keygen -t rsa -C "Comment" -f file_name
|
在私有仓库设置 Secrets,将私钥复制进去,然后在 action 里面,通过标识进行引用。命令里面将私钥复制到本地 .ssh
目录下。
在公有仓库设置 Deploy keys,将公钥复制进去,然后私有仓库的action就可以部署到这个公有仓库了。
action 代表了一个独立的服务器环境,你可以在这里进行一系列的流程作业。