diff --git a/.github/workflows/test_full_stack.yml b/.github/workflows/test_full_stack.yml index 419f6a02..ca4b0be3 100644 --- a/.github/workflows/test_full_stack.yml +++ b/.github/workflows/test_full_stack.yml @@ -16,27 +16,10 @@ on: - cron: "0 4 * * *" jobs: - lint_full: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint . - ansible-lint roles/ + uses: ./.github/workflows/test_linting.yml + with: + rolename: '' molecule_full_stack_every_os: runs-on: ubuntu-latest diff --git a/.github/workflows/test_linting.yml b/.github/workflows/test_linting.yml new file mode 100644 index 00000000..cbb0a4ca --- /dev/null +++ b/.github/workflows/test_linting.yml @@ -0,0 +1,68 @@ +--- +name: Test Linting +on: + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - info + - warning + - debug + workflow_call: + inputs: + rolename: + required: true + type: string + push: + branches: + - 'feature/**' + - 'fix/**' + - '!doc/**' + paths: + - '.github/workflows/test_linting.yml' + - '.config/ansible-lint.yml' + - '.yamllint' + pull_request: + branches: + - 'feature/**' + - 'fix/**' + - '!doc/**' + paths: + - '.github/workflows/test_linting.yml' + - '.config/ansible-lint.yml' + - '.yamllint' + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Check out the codebase. + uses: actions/checkout@v3 + + - name: Set up Python 3. + uses: actions/setup-python@v4 + with: + python-version: '3.x' + + - name: Install test dependencies. + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r requirements-test.txt + + - name: Lint code (yamllint). + run: | + yamllint . + if: ${{ inputs.rolename == '' }} + + - name: Lint Role (yamllint). + run: | + ansible-lint roles/${{ inputs.rolename }} + if: ${{ inputs.rolename != '' }} + + - name: Lint Role (ansible-lint). + run: | + ansible-lint roles/${{ inputs.rolename }} diff --git a/.github/workflows/test_role_beats.yml b/.github/workflows/test_role_beats.yml index 2e15de00..82741d96 100644 --- a/.github/workflows/test_role_beats.yml +++ b/.github/workflows/test_role_beats.yml @@ -21,8 +21,6 @@ on: - 'roles/beats/**' - '.github/workflows/test_role_beats.yml' - 'molecule/beats_**' - - '.config/ansible-lint.yml' - - '.yamllint' pull_request: branches: - 'feature/**' @@ -32,30 +30,12 @@ on: - 'roles/beats/**' - '.github/workflows/test_role_beats.yml' - 'molecule/beats_**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_beats: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint roles/beats/ - ansible-lint roles/beats/ + uses: ./.github/workflows/test_linting.yml + with: + rolename: beats molecule_beats: needs: lint_beats diff --git a/.github/workflows/test_role_elasticsearch.yml b/.github/workflows/test_role_elasticsearch.yml index 418ab8f2..606b92e2 100644 --- a/.github/workflows/test_role_elasticsearch.yml +++ b/.github/workflows/test_role_elasticsearch.yml @@ -21,8 +21,6 @@ on: - 'roles/elasticsearch/**' - '.github/workflows/test_role_elasticsearch.yml' - 'molecule/elasticsearch_**' - - '.config/ansible-lint.yml' - - '.yamllint' pull_request: branches: - 'feature/**' @@ -32,30 +30,12 @@ on: - 'roles/elasticsearch/**' - '.github/workflows/test_role_elasticsearch.yml' - 'molecule/elasticsearch_**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_elasticsearch: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint roles/elasticsearch/ - ansible-lint roles/elasticsearch/ + uses: ./.github/workflows/test_linting.yml + with: + rolename: elasticsearch molecule_elasticsearch: needs: lint_elasticsearch diff --git a/.github/workflows/test_role_kibana.yml b/.github/workflows/test_role_kibana.yml index d5479fc4..2d75cb63 100644 --- a/.github/workflows/test_role_kibana.yml +++ b/.github/workflows/test_role_kibana.yml @@ -21,8 +21,6 @@ on: - 'roles/kibana/**' - '.github/workflows/test_role_kibana.yml' - 'molecule/kibana_**' - - '.config/ansible-lint.yml' - - '.yamllint' pull_request: branches: - 'feature/**' @@ -32,30 +30,13 @@ on: - 'roles/kibana/**' - '.github/workflows/test_role_kibana.yml' - 'molecule/kibana_**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_kibana: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' + uses: ./.github/workflows/test_linting.yml + with: + rolename: kibana - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint roles/kibana/ - ansible-lint roles/kibana/ molecule_kibana: needs: lint_kibana diff --git a/.github/workflows/test_role_logstash.yml b/.github/workflows/test_role_logstash.yml index be06b19e..e13e8384 100644 --- a/.github/workflows/test_role_logstash.yml +++ b/.github/workflows/test_role_logstash.yml @@ -21,8 +21,6 @@ on: - 'roles/logstash/**' - '.github/workflows/test_role_logstash.yml' - 'molecule/logstash_**' - - '.config/ansible-lint.yml' - - '.yamllint' pull_request: branches: - 'feature/**' @@ -32,30 +30,13 @@ on: - 'roles/logstash/**' - '.github/workflows/test_role_logstash.yml' - 'molecule/logstash_**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_logstash: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' + uses: ./.github/workflows/test_linting.yml + with: + rolename: logstash - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint roles/logstash/ - ansible-lint roles/logstash/ molecule_logstash_extended: runs-on: ubuntu-latest diff --git a/.github/workflows/test_role_repos.yml b/.github/workflows/test_role_repos.yml index dc40709c..ab3441c0 100644 --- a/.github/workflows/test_role_repos.yml +++ b/.github/workflows/test_role_repos.yml @@ -20,8 +20,6 @@ on: - 'roles/repos/**' - '.github/workflows/test_role_repos.yml' - 'molecule/repos_**' - - '.config/ansible-lint.yml' - - '.yamllint' pull_request: branches: - 'feature/**' @@ -31,30 +29,12 @@ on: - 'roles/repos/**' - '.github/workflows/test_role_repos.yml' - 'molecule/repos_**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_repos: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint roles/repos/ - ansible-lint roles/repos/ + uses: ./.github/workflows/test_linting.yml + with: + rolename: repos molecule_repos: needs: lint_repos diff --git a/.github/workflows/test_roles_pr.yml b/.github/workflows/test_roles_pr.yml index cebcb59d..fdac2e43 100644 --- a/.github/workflows/test_roles_pr.yml +++ b/.github/workflows/test_roles_pr.yml @@ -21,8 +21,6 @@ on: - 'roles/**' - '.github/workflows/test_roles_pr.yml' - 'molecule/elasticstack_default/**' - - '.config/ansible-lint.yml' - - '.yamllint' push: branches: - 'feature/**' @@ -32,30 +30,13 @@ on: - 'roles/**' - '.github/workflows/test_roles_pr.yml' - 'molecule/elasticstack_default/**' - - '.config/ansible-lint.yml' - - '.yamllint' jobs: lint_full: - runs-on: ubuntu-latest - steps: - - name: Check out the codebase. - uses: actions/checkout@v3 - - - name: Set up Python 3. - uses: actions/setup-python@v4 - with: - python-version: '3.x' + uses: ./.github/workflows/test_linting.yml + with: + rolename: '' - - name: Install test dependencies. - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements-test.txt - - - name: Lint code. - run: | - yamllint . - ansible-lint roles/ molecule_full_stack: runs-on: ubuntu-latest needs: lint_full