ToB企服应用市场:ToB评测及商务社交产业平台
标题:
GitHub Action Workflow
[打印本页]
作者:
篮之新喜
时间:
2024-9-23 04:05
标题:
GitHub Action Workflow
GitHub Actions 是一个一连集成和一连部署 (CI/CD) 平台,它允许您自动化构建、测试和部署您的项目。以下是 GitHub Actions 中的 Workflow(工作流程)的原理:
1. 工作流程文件(Workflow File)
工作流程是由存储在堆栈中的 YAML 格式的文件界说的。这些文件通常放在 .github/workflows 目次下。您可以在一个堆栈中创建多个工作流程文件,用于执行差别的自动化任务。
2. 触发器(Triggers)
工作流程可以通过各种变乱来触发,例如:
push:当有代码被推送到堆栈时。
pull_request:当有人提交一个 pull request 时。
issue_comment:当有人评论一个 issue 时。
schedule:基于预定的时间表。
3. 任务(Jobs)
工作流程由一个或多个任务组成。每个任务是在同一运行器(runner)上执行的一组步骤。
4. 步骤(Steps)
每个任务包罗一系列的步骤。步骤可以是执行命令、使用动作(actions)或者设置情况变量。
5. 动作(Actions)
动作是工作流程中的独立命令,可以是社区贡献的或者自界说的。它们是工作流程最小的可移植单元,可以用来执行各种操作,好比设置情况、运行脚本、使用 Docker 容器等。
6. 运行器(Runners)
运行器是一个服务器或者虚拟机,它运行 GitHub Actions 的命令。您可以使用 GitHub 提供的运行器,也可以设置本身的运行器。
工作流程的执行原理:
变乱触发
:当堆栈中发生了一个配置了触发器的变乱时,GitHub Actions 会检查是否有干系的工作流程文件。
检出代码
:工作流程开始时,默认的第一步是检出堆栈的代码到运行器上。
执行任务
:根据工作流程文件中的界说,任务会被顺序执行或者并行执行。
执行步骤
:在每个任务内部,步骤会按照界说的顺序执行。如果某个步骤失败了,默认情况下,该任务会停止,而且工作流程会被标志为失败。
使用动作
:在步骤中,可以使用预界说的动作来完成特定的任务。
访问权限
:运行器在执行任务时会使用一个 GitHub 密钥(GITHUB_TOKEN),该密钥拥有对当前堆栈的读写权限。
日记和关照
:工作流程的执行过程会被记录,而且可以通过 GitHub UI 检察日记。别的,还可以配置关照,好比在流程乐成或失败时发送邮件。
完成
:所有任务完成后,工作流程要么乐成竣事,要么因为错误而失败。
通过这种方式,GitHub Actions 提供了一种灵活、可扩展的方式来自动化软件开发过程中的各个环节。
如果您的项目是基于 Python,并且您想要在 GitHub Actions 工作流程中使用 Python 3.11,您可以按照以下示例来设置 `.github/workflows/ci.yml` 文件:
```yaml
name: Python CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Set up Python 3.11
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: |
python -m unittest discover -s tests
复制代码
以下是工作流程的详细解释:
name
: 工作流程的名称。
on
: 界说了触发工作流程的变乱。在这个例子中,它会在向 main 分支 push 代码或创建一个针对 main 分支的 pull request 时触发。
jobs
: 界说了要执行的一个或多个作业(在这个例子中只有一个作业)。
build
: 作业的 ID。
runs-on
: 指定运行作业的虚拟机情况,这里使用的是最新版本的 Ubuntu。
steps
: 界说了作业中的步骤。
actions/checkout@v3
: 使用一个社区提供的动作来检出代码。
actions/setup-python@v4
: 使用一个社区提供的动作来设置 Python 情况,指定版本为 3.11。
Install dependencies
: 运行一系列命令来升级 pip 并安装项目依赖,假设你的依赖列表在 requirements.txt 文件中。
Run tests
: 运行命令来执行项目中的测试。这里假设你的测试脚本位于 tests 目次,而且遵循了 Python 的 unittest 测试框架的命名约定。
当您将这个文件推送到 GitHub 堆栈时,每次对 main 分支的 push 或 pull request 都会触发这个工作流程。GitHub Actions 会自动执行界说好的步骤,并在堆栈的 “Actions” 选项卡中表现执行的状态和日记。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4