zoukankan      html  css  js  c++  java
  • 一个最简单的 Github workflow 例子

    源代码:

    name: learn-github-actions
    on: [push]
    jobs:
      check-bats-version:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - uses: actions/setup-node@v2
            with:
              node-version: '14'
          - run: npm install -g bats
          - run: bats -v
    

    workflow

    工作流程是您添加到仓库的自动化过程。

    工作流程由一项或多项 jobs 组成,可以计划或由事件触发。

    工作流程可用于在 GitHub 上构建、测试、打包、发布或部署项目。

    本文例子里,我们创建了一个名称叫做 learn-github-actions 的 工作流。

    event

    事件是触发工作流程的特定活动。 例如,当有推送提交到仓库或者创建议题或拉取请求时,GitHub 就可能产生活动。 您还可以使用仓库分发 web 挂钩在发生外部事件时触发工作流程。 有关可用于触发工作流程的事件的完整列表,请参阅触发工作流程的事件。

    本文例子,on: [push], 意思是有代码 push 到 Github 仓库时,触发该工作流。

    Jobs

    作业是在同一运行服务器上执行的一组步骤的集合。 默认情况下,包含多个作业的工作流程将同时运行这些作业。 您也可以配置工作流程按顺序运行作业。 例如,工作流程可以有两个连续的任务来构建和测试代码,其中测试作业取决于构建作业的状态。 如果构建作业失败,测试作业将不会运行。

    本文例子,定义了一个叫做 check-bats-version 的作业。

    steps

    步骤是可以在作业中运行命令的单个任务。 步骤可以是操作或 shell 命令。 作业中的每个步骤在同一运行器上执行,可让该作业中的操作互相共享数据。

    一个作业可以包含多个步骤。

    action 操作

    操作是独立命令,它们组合到步骤以创建作业。 操作是工作流程最小的便携式构建块。 您可以创建自己的操作,也可以使用 GitHub 社区创建的操作。 要在工作流程中使用操作,必须将其作为一个步骤,即放到一个 step 中去。

    本文例子内包含的 actin 见下图高亮:

    runner

    运行器是安装了 GitHub Actions 运行器应用程序的服务器。 您可以使用 GitHub 托管的运行器或托管您自己的运行器。 运行器将侦听可用的作业,每次运行一个作业,并将进度、日志和结果报告回 GitHub。 GitHub 托管的运行器基于 Ubuntu Linux、Microsoft Windows 和 macOS,并且工作流程中的每个作业都在新的虚拟环境中运行。

    本文例子的工作流,通过 yml 文件里的定义:

    runs-on: ubuntu-latest

    工作于 Github 托管的 Ubuntu 服务器上。

    代码第7行:

    - uses: actions/checkout@v2
    

    uses 关键字指示作业检索名为 actions/checkout@v2 的社区操作的 v2。

    这是检出仓库并将其下载到运行器的操作,允许针对您的代码运行操作(例如测试工具)。 只要工作流程针对仓库的代码运行,或者您使用仓库中定义的操作,您都必须使用检出操作。

    - uses: actions/setup-node@v2
            with:
              node-version: '14'
    

    安装 Node.js 运行环境到托管服务器上,版本为 14

    这个工作流逻辑的可视化版本如下:

    更多Jerry的原创文章,尽在:"汪子熙":

  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/sap-jerry/p/15395304.html
Copyright © 2011-2022 走看看