Skip to content

MonolithProjects/action-molecule

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Molecule GitHub Action

GitHub Action for Molecule 3.5.2 (docker driver) to test your Ansible Roles including the Ansible-playbook arguments.
This GitHub Action is small, multi stage built, Alpine Linux 3.13 based Docker image.

Inputs

  molecule_command:
    description: |
      Molecule commands:
        check        Use the provisioner to perform a Dry-Run.
        cleanup      Use the provisioner to cleanup changes.
        converge     Use the provisioner to configure instances.
        create       Use the provisioner to start the instances.
        dependency   Manage the role's dependencies.
        destroy      Use the provisioner to destroy the instances.
        drivers      List drivers.
        idempotence  Use the provisioner to test the idempotence.
        init         Initialize a new role or scenario.
        lint         Lint the role.
        list         List status of instances.
        login        Log in to one instance.
        matrix       List matrix of steps used to test instances.
        prepare      Use the provisioner to prepare the instances.
        reset        Reset molecule temporary folders.
        side-effect  Use the provisioner to perform side-effects to the instances.
        syntax       Use the provisioner to syntax check the role.
        test         Test cicle.
        verify       Run automated tests against instances.
    required: true
    default: 'test'
  converge_extra_args:
    description: |
      Run molecule converge with ansible-playbook arguments ( Same like: molecule converge -- --tags foo,bar --extra_vars "my_var=true").
    required: false
  scenario:
    description: |
      Run specific Molecule Scenario
    required: false

Usage

To use the action simply create a yaml file in .github/workflows/ directory. See the examples below.

Basic example

In this case the GitHub Action will run molecule test:

on: push

jobs:
  molecule:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          path: "${{ github.repository }}"
      - name: Molecule
        uses: monolithprojects/[email protected]

Ansible-playbook arguments

In this case the GitHub Action will run molecule converge -s special_scenario -- --tags foo,bar --extra_vars "my_var=true":

on: push

jobs:
  molecule:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          path: "${{ github.repository }}"
      - name: Molecule
        uses: monolithprojects/[email protected]
        with:
          molecule_command: converge
          scenario: special_scenario
          converge_extra_args: --tags foo,bar --extra_vars "my_var=true"

Matrix for used image and tag

on: push

jobs:
  molecule:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        config:
          - os: "centos8"
            tag: "latest"
          - os: "ubuntu20"
            tag: "latest"
    steps:
      - uses: actions/checkout@v2
        with:
          path: "${{ github.repository }}"
      - name: Molecule
        uses: MonolithProjects/[email protected]
        with:
          os: ${{ matrix.config.os }}
          tag: ${{ matrix.config.tag }}

About

GitHub Action for Ansible roles testing using Molecule

Resources

Stars

Watchers

Forks

Packages

No packages published