name: ansible-lint on: [push, pull_request] # Cancel in progress workflows on pull_requests. # https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: # In order to be able to have required checks, a workflow can't be entirely # skipped: see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/troubleshooting-required-status-checks#handling-skipped-but-required-checks paths-filter: name: "Changed files?" runs-on: ubuntu-latest outputs: matches: ${{ steps.filter.outputs.matches }} steps: - uses: actions/checkout@v4 with: fetch-depth: 2 # important, to fetch previous commit # workaround for https://github.com/dorny/paths-filter/issues/240 - id: previous-sha run: 'echo "sha=$(git rev-parse HEAD^1)" >> $GITHUB_OUTPUT' - uses: dorny/paths-filter@v3 id: filter with: base: "${{ steps.previous-sha.outputs.sha }}" filters: | matches: - 'ansible/**' - '.github/workflows/ansible-lint.yaml' build: needs: paths-filter if: needs.paths-filter.outputs.matches == 'true' name: Ansible Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 # needed for progressive mode to work - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.12' - name: Install dependencies run: | cd ansible/ python -m pip install --upgrade pip pip install pipenv pipenv sync - name: Lint run: | cd ansible pipenv run ansible-lint -c ./lint-cfg.yml ./do_setup.yml