{"repo":"jaywcjlove/github-actions","free":true,"listed":false,"github":"https://github.com/jaywcjlove/github-actions","clone":"git clone https://github.com/jaywcjlove/github-actions.git","description":"测试 GitHub Actions","language":"JavaScript","stars":26,"topics":["actions","github-actions"],"license":null,"category":"deployment-docker-iac","readme_excerpt":"Using my app is also a way to support me: Github Actions === 测试 GitHub 工作流，一些比较特殊的玩儿法。 目录 - 基本概念 - 配置文件 - 多项任务 - 多项任务依赖关系 - 指定每项任务的虚拟机环境 - 一个工作流完成触发另外一个工作流 - 常用实例 - 获取版本信息 - 获取是否存在 Tag - 修改 package.json - 提交到 gh-pages 分支 - 克隆带有 Submodule 的仓库 - 步骤依赖作业 - 步骤作业文件共享 - 提交 NPM 包 - 提交 docker 镜像 - 提交 commit 到 master 分支 - Node.js - 同步 Gitee - 环境变量 - 默认环境变量 - 自定义环境变量 - Github 上下文 基本概念 GitHub actions 有四个基本的概念，如下： - workflow （工作流程）：持续集成一次运行的过程，就是一个 workflow。 - job （任务）：一个 workflow 由一个或多个 jobs 构成，含义是一次持续集成的运行，可以完成多个任务。 - step（步骤）：每个 job 由多个 step 构成，一步步完成。 - action （动作）：每个 step 可以依次执行一个或多个命令（action）。 配置文件 GitHub Actions 采用 YAML 格式的配置文件叫做 workflow 文件，存放在代码仓库的 .github/workflows 目录。文件名可以任意取，但是后缀名统一为 .yml ，比如 ci.yml 。一个库可以有多个 workflow 文件。GitHub 只要发现 .github/workflows 目录里面有 .yml 文件，就会根据配置事件自动运行该文件。 定触条件 on 字段指定触发 workflow 的条件，通常是某些事件。 多项任务 通过 jobs ( jobs. .name )字段，配置一项或多项需要执行的任务。 多项任务依赖关系 通过 needs ( jobs. .needs )字段，指定当前任务的依赖关系。 上面配置中， job1 必须先于 job2 完成，而 job3 等待 job1 和 job2 的完成才能运行。因此，这个 workflow 的运行顺序依次为： job1 、 job2 、 job3 。 多项任务传递参数 指定每项任务的虚拟机环境 runs-on 字段指定运行所需要的虚拟机环境。⚠️ 它是必填字段。 虚拟环境 YAML 工作流程标签 注： -------------------- --------------------------------- ---------------------------------------------------------------------------------- Windows Server 2022 windows-latest 或 windows-2022 windows-latest 标签目前使用的是 Windows Server 2022 运行器镜像 Windows Server 2019 windows-2019 Ubuntu 22.04 ubuntu-22.04 Ubuntu 22.04 目前处于公开测试阶段。 Ubuntu 20.04 ubuntu-latest 或 ubuntu-20.04 Ubuntu 18.04 ubuntu-18.04 macOS Mo","default_branch":null,"files":null,"tree":[],"storefront":"/r/jaywcjlove","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/jaywcjlove/github-actions/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}