自定义 Github Action 库实战详解

下面是“自定义 Github Action 库实战详解”的完整攻略。

什么是 Github Action?

Github Action 是 Github 提供的一款自动化工具,通过编写工作流程(workflow),可以实现对项目代码的自动化构建、测试、发布等操作。Github Action 的使用不需要离开 Github 界面,因此非常适合开发者与开源贡献者进行无缝协作。

如何自定义 Github Action 库?

Github 官方提供了大量的官方 Action 库供我们使用,但有时候官方库中并未包含我们需要的特定功能,这时需要我们自己创建和维护一个自定义的 Action 库。

以下是自定义 Github Action 库的步骤:

  1. 创建一个 public 的 Github 仓库并初始化:
mkdir my-action
cd my-action
git init
touch README.md
  1. 创建 action 文件夹并在里面编写自己的 action:
mkdir action
cd action
touch sub-action.yml

在 sub-action.yml 文件中编写自己的 action,例如:

name: sub-action
description: My Action.

inputs:
  name:
    description: 'The name of the resource'
    required: true
    default: 'World'
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - "${{ inputs.name }}"

以上 action 会启动一个 Docker 容器并在容器中运行 Dockerfile,执行 args 中的命令。

  1. 在主目录下创建 Dockerfile:
touch Dockerfile

在 Dockerfile 中指定自己的运行环境,例如:

FROM node:8-slim

RUN apt-get update && \
    apt-get install -y \
      curl \
    && rm -rf /var/lib/apt/lists/*

ENV HOME /home/my-action
RUN mkdir -p $HOME
WORKDIR $HOME

COPY . /home/my-action

ENTRYPOINT [ "/bin/bash" ]
  1. 在主目录下创建 action.yml 文件, 指定自己的 action:
touch action.yml

在 action.yml 文件中指定自己的 action 和需要的 inputs,例如:

name: 'My Action'
description: 'My first action'
inputs:
  name:
    description: 'The name of the resource'
    required: true
    default: 'World'
runs:
  using: 'docker'
  image: 'Dockerfile'
  args:
    - "${{ inputs.name }}"
  1. 将代码推送到 Github 仓库:
git add .
git commit -m "first commit"
git remote add origin git@github.com:your-name/my-action.git
git push -u origin master
  1. 现在可以在自己的项目中使用该 Action 了。在项目的 .github/workflows 文件夹下创建一个文件并指定使用自己的 Action:
name: My Workflow

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v1

    - name: My Action
      uses: your-name/my-action@master
      with:
        name: 'Github'

以上示例代码中,name 指定 Github Action 中需要的参数。

示例说明

针对以上步骤,这里提供两个使用示例:

示例1:使用自定义 action 完成项目的 depoly

  1. 在自己的仓库里新建一个 deploy.yml 文件,指定以下步骤:
name: Deploy

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master

      - name: Setup Python
        uses: actions/setup-python@v1
        with:
          python-version: '3.x'

      - name: Install Dependencies
        run: |
          pip install -r requirements.txt

      - name: Build and Deploy
        uses: your-name/my-action@master
        with:
          name: 'production'
          args: |
            fab build
            fab deploy

以上示例代码中使用到了自定义的 my-action,该 action 通过 sub-action.yml 启动一个 Docker 容器并在容器中运行 Fabric。

  1. 提交代码并触发 Action,实现项目的部署。

示例2:使用自定义 action 完成 API 测试

  1. 在自己的仓库里新建一个 test.yml 文件,指定以下步骤:
name: Test

on:
  push:
    paths:
      - '**.py'

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master

      - name: Setup Python
        uses: actions/setup-python@v1
        with:
          python-version: '3.x'

      - name: Install Dependencies
        run: |
          pip install -r requirements.txt
          pip install pytest

      - name: Run Tests
        uses: your-name/my-action@master
        with:
          name: 'test'
          args: |
            pytest

以上示例代码中,使用到了自定义的 my-action,该 action 通过 sub-action.yml 启动一个 Docker 容器并在容器中运行 pytest。

  1. 提交代码并触发 Action,使用自定义的 action 进行 API 测试。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:自定义 Github Action 库实战详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Windows下Git使用入门(铁锚出品)

    下面我将详细讲解“Windows下Git使用入门(铁锚出品)”的完整攻略,过程中包含两条示例说明。 Windows下Git使用入门(铁锚出品) 前言 Git是一款分布式版本控制系统,近年来在软件开发中越来越受欢迎。本文将详细讲解如何在Windows系统下使用Git进行版本控制。本文是基于git version 2.24.1.windows.2和Windows…

    GitHub 2023年5月16日
    00
  • 详解Android Studio Git分支实践

    下面我将为你详细讲解“详解Android Studio Git分支实践”的完整攻略。 简介 Git是一款流行的版本控制工具,而在Android Studio开发中,也经常会使用Git来管理代码。Git的分支机制可以方便地维护不同版本的代码,特别是在多人协作开发的场景下。 本文将介绍Android Studio中Git分支的基本操作,以及实际应用。 Git分支…

    GitHub 2023年5月16日
    00
  • Git原理和常用操作

    Git原理 Git是一种分布式版本控制系统,它可以帮助用户记录代码的历史版本、管理分支、合并代码等操作。Git通过创建仓库来管理代码,仓库里记录代码的各个版本,每个版本都包含一个快照,快照包含了所有文件的当前状态,这样就可以随时回溯到某一个版本。 Git工作流程中,大致包括文件的修改、提交、推送等环节。文件修改后需要使用add命令将修改添加到暂存区,再使用c…

    GitHub 2023年5月16日
    00
  • 利用PyCharm操作Github(仓库新建、更新,代码回滚)

    下面是利用PyCharm操作Github的完整攻略,包含仓库新建、更新,代码回滚的详细讲解: 1. Github仓库的新建 1.1 登录Github网站,创建新的仓库 前往Github官网,登录你的账号,在右上角点击“+”号,从下拉菜单中选择“New repository”,进入新建仓库页面。填写仓库名称、描述等信息,并选择是否设置为私有仓库,最后点击“Cr…

    GitHub 2023年5月16日
    00
  • msysgit之Git for Windows 安装与使用教程

    msysgit之Git for Windows 安装与使用教程 在本文中,我们将详细讲解如何在Windows平台上安装和使用msysgit中的Git for Windows工具,该工具可以让你更加方便地使用Git版本控制系统进行项目管理。 第一步:下载和安装Git for Windows 在开始之前,您需要先下载和安装Git for Windows。这可以通…

    GitHub 2023年5月16日
    00
  • docker安装rockerChat设置聊天室的详细步骤

    一、 安装Docker1. 到Docker官网 https://docs.docker.com/get-docker/ 上下载Docker的安装包,根据自己的操作系统类型选择合适的安装包并进行安装。2. 安装完成后,在终端/命令提示符中输入docker -v 命令,检查Docker的版本信息,确保Docker已经成功安装。 二、 下载Rocketchat的D…

    GitHub 2023年5月16日
    00
  • Git 教程之服务器搭建详解

    下面是 “Git 教程之服务器搭建详解” 的完整攻略: 前言 Git 是当今最为流行的版本控制工具之一,其在开发中的优势得到了广泛的认可。通过在服务器上搭建 Git 服务,可以更好地管理本地所做的修改,并实现团队协作。 准备工作 在进行服务器搭建之前,需要进行以下准备工作: 选择 Git 服务商 选择 Git 服务商可以帮助我们快速、高效地搭建 Git 服务…

    GitHub 2023年5月16日
    00
  • Linux操作Git远程仓库与本地仓库同步的教程

    下面是“Linux操作Git远程仓库与本地仓库同步的教程”的完整攻略,包含两条示例说明。 一、Git远程仓库与本地仓库同步教程 Git是一种分布式的版本控制系统,可以轻松地进行代码的管理与同步。在使用Git的过程中,我们通常需要将本地仓库同步到远程仓库,或者将远程仓库中的代码更新到本地仓库中。本文将详细讲解如何在Linux系统下,操作Git远程仓库与本地仓库…

    GitHub 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部