Skip to content

Run ansible-lint

Run ansible-lint #5893

Workflow file for this run

# Run Ansible lint in playbooks and roles
name: Run ansible-lint
# Controls when the action will run.
on:
pull_request:
push:
schedule:
- cron: '0 */8 * * *'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
steps:
# Important: This sets up your GITHUB_WORKSPACE environment variable
- uses: actions/checkout@v3
- name: Set ANSIBLE_ROLES_PATH
run: |
EXTRA_ANSIBLE_ROLES_PATH=$(find "$(realpath ./projects)" -type d -name toolbox -print | tr '\n' ':')
if [ -n "$ANSIBLE_ROLES_PATH" ]; then
ANSIBLE_ROLES_PATH="$ANSIBLE_ROLES_PATH:$EXTRA_ANSIBLE_ROLES_PATH"
else
ANSIBLE_ROLES_PATH="$EXTRA_ANSIBLE_ROLES_PATH"
fi
echo "ANSIBLE_ROLES_PATH=$ANSIBLE_ROLES_PATH" | tee -a "$GITHUB_ENV"
- name: Lint Ansible Playbook
# replace "main" with any valid ref
uses: ansible/ansible-lint@main
with:
# [required]
# Paths to ansible files (i.e., playbooks, tasks, handlers etc..)
# or valid Ansible directories according to the Ansible role
# directory structure.
# If you want to lint multiple ansible files, use the following syntax
# targets: |
# playbook_1.yml
# playbook_2.yml
targets: |
toolbox
# [optional]
# Arguments to override a package and its version to be set explicitly.
# Must follow the example syntax.
override-deps: |
ansible==2.9
ansible-lint==5.0.5
rich>=9.5.1,<11.0.0
# [optional]
# Arguments to be passed to the ansible-lint
# Options:
# -q quieter, although not silent output
# -p parseable output in the format of pep8
# --parseable-severity parseable output including severity of rule
# -r RULESDIR specify one or more rules directories using one or
# more -r arguments. Any -r flags override the default
# rules in ansiblelint/rules, unless -R is also used.
# -R Use default rules in ansiblelint/rules in addition to
# any extra
# rules directories specified with -r. There is no need
# to specify this if no -r flags are used
# -t TAGS only check rules whose id/tags match these values
# -x SKIP_LIST only check rules whose id/tags do not match these
# values
# --nocolor disable colored output
# --exclude=EXCLUDE_PATHS
# path to directories or files to skip. This option is
# repeatable.
# -c C Specify configuration file to use. Defaults to ".ansible-lint"
args: "-c ansible-config/ansible-lint.yml"