该GitHub Action允许在GitHub Actions工作流中运行Molecule以测试Ansible角色。Molecule是Ansible的测试框架,可自动化角色的创建、配置、验证等测试流程。此Action提供了灵活的配置选项,支持自定义测试命令、参数和工作目录,适用于Ansible角色的持续集成和自动化测试。
描述:Molecule命令的选项参数。
必填:否
选项说明:
--debug / --no-debug:启用或禁用调试模式,默认禁用。-v, --verbose:增加Ansible详细级别,默认0(x≥0)。-c, --base-config TEXT:基础配置文件路径(可多次指定)。Molecule会先按指定顺序加载并深度合并配置,再合并每个场景的molecule.yml。默认查找当前版本控制仓库中的.config/molecule/config.yml,若未找到则查找用户主目录(无默认值)。-e, --env-file TEXT:渲染molecule.yml时读取变量的文件,默认.env.yml。--version:显示版本信息。--help:显示帮助信息并退出。描述:要执行的Molecule命令。
必填:是
默认值:test
命令说明:
check:使用配置器执行空运行(销毁、依赖、创建、准备、配置)。cleanup:使用配置器清理测试阶段对外部系统的更改。converge:使用配置器配置实例(依赖、创建、准备、配置)。create:使用配置器启动实例。dependency:管理角色依赖。destroy:使用配置器销毁实例。drivers:列出驱动程序。idempotence:使用配置器配置实例并解析输出以确定幂等性。init:初始化新角色或场景。lint:检查角色代码规范(依赖、lint)。list:列出实例状态。login:登录到一个实例。matrix:列出测试实例使用的步骤矩阵。prepare:使用配置器将实例准备到特定初始状态。reset:重置Molecule临时文件夹。side-effect:使用配置器对实例执行副作用操作。syntax:使用配置器检查角色语法。test:完整测试流程(依赖、lint、清理、销毁、语法检查、创建、准备、配置、幂等性、副作用、验证、清理、销毁)。verify:对实例运行自动化测试。描述:Molecule命令的参数。
必填:否
参数说明:
-s, --scenario-name TEXT:目标场景名称,默认default。-d, --driver-name [delegated|docker]:使用的驱动名称,默认delegated。--all / --no-all:测试所有场景,默认False。--destroy [always|never]:Molecule运行结束时的销毁策略,默认always。--parallel / --no-parallel:启用或禁用并行模式,默认禁用。描述:仓库中执行Molecule命令的目录路径。适用于Ansible角色不在仓库根目录的情况。
必填:否
默认值:${GITHUB_REPOSITORY}
--scenario-name指定不同场景(如不同操作系统),确保角色在多种环境中兼容。molecule_command选择特定测试阶段(如仅检查语法、仅验证幂等性)。molecule_working_dir指定角色所在目录,支持非根目录的角色测试。在仓库的.github/workflows/目录下创建main.yml(或自定义名称),配置如下:
yamlon: push jobs: molecule: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: path: "${{ github.repository }}" - uses: gofrolist/molecule-action@v2
注意:默认情况下,Molecule会在
molecule/*/molecule.yml查找配置。若未指定molecule-working-dir,checkout操作需将文件放置在${{ github.repository }}目录,以便Molecule找到角色。若角色位于仓库其他位置,需设置molecule-working-dir,确保执行molecule命令前切换到该目录。
yamlname: Molecule on: push: branches: - master pull_request: branches: - master jobs: molecule: runs-on: ubuntu-latest strategy: fail-fast: false matrix: scenario: - centos-8 - debian-10 - fedora-34 - oraclelinux-8 - ubuntu-20.04 steps: - name: Checkout uses: actions/checkout@v2 with: path: "${{ github.repository }}" - name: Molecule uses: gofrolist/molecule-action@v2 with: molecule_options: --debug --base-config molecule/_shared/base.yml molecule_command: test molecule_args: --scenario-name ${{ matrix.scenario }}
提示:建议使用
gofrolist/molecule-action@v2或其他有效标签、分支、提交SHA代替v2,以固定Action版本。
若角色需要特定Python模块(如netaddr),可在Molecule的prepare阶段安装:
yaml--- - name: Prepare hosts: all tasks: - name: 在控制主机(虚拟环境)上安装netaddr依赖 pip: name: netaddr delegate_to: 127.0.0.1
本项目中的Dockerfile、相关脚本和文档以MIT许可证发布。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429