返回

构建一个称职的多功能Github Action

前端

从模板初始化项目

首先,你需要使用命令创建项目:

gh repo create <your-repo-name> --template octocat/action-template-typescript

在根目录添加 action.yml

接下来,你在根目录中创建一个名为action.yml的文件,这是Github Action的配置文件。你可以在此文件里设置项目的触发条件,配置需要运行的任务,自定义输入参数,和输出信息等。

name: 'My Action'

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Build
        run: npm run build

      - name: Upload artifact
        uses: actions/upload-artifact@v2
        with:
          name: build-artifacts
          path: dist/

创建入口 index.ts

在 src 目录下创建一个index.ts文件,这是Github Action的入口文件。在这里,你可以定义Action的功能。

import {Context} from '@actions/github/lib/context';

export async function run(octokit: Octokit, context: Context): Promise<void> {
  console.log('Hello world!');
}

获取参数以及 github

你可以通过 context.payload.inputs 获取用户传递给Github Action的参数。你可以通过 octokit 对象与github api进行交互。

const name = context.payload.inputs.name;

获取运行信息

const sha = context.payload.after;

获取issue信息

const issueTitle = context.payload.issue.title;

运行测试

  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Test
        run: npm run test

部署

  deploy:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Deploy
        run: npm run deploy