--- name: "devsec.ssh_hardening" on: # yamllint disable-line rule:truthy workflow_dispatch: push: branches: [master] paths: - 'roles/ssh_hardening/**' - 'molecule/ssh_hardening/**' - '.github/workflows/ssh_hardening.yml' - 'requirements.txt' pull_request: branches: [master] paths: - 'roles/ssh_hardening/**' - 'molecule/ssh_hardening/**' - '.github/workflows/ssh_hardening.yml' - 'requirements.txt' schedule: - cron: '0 6 * * 5' concurrency: group: >- ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest env: PY_COLORS: 1 ANSIBLE_FORCE_COLOR: 1 strategy: fail-fast: false matrix: molecule_distro: - centosstream9 - rocky8 - rocky9 - fedora39 - fedora40 - ubuntu2004 - ubuntu2204 - ubuntu2404 - debian11 - debian12 - amazon2023 - arch # - opensuse_tumbleweed # needs fix - opensuse has different file location for conf and pam (/usr/etc/ssh/?, /usr/lib/pam.d/?) steps: - name: Checkout repo uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4 with: path: ansible_collections/devsec/hardening submodules: true - name: Set up Python uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5 with: python-version: 3.12 - name: Install dependencies run: | sudo apt install git python -m pip install --no-cache-dir --upgrade pip pip install -r requirements.txt working-directory: ansible_collections/devsec/hardening - name: Downgrade Ansible for Rocky 8 tests run: | pip install "ansible-core<2.17" working-directory: ansible_collections/devsec/hardening if: matrix.molecule_distro == 'rocky8' - name: Test with molecule run: | if [ "$MOLECULE_DISTRO" = "opensuse_tumbleweed" ]; then export MOLECULE_DOCKER_COMMAND="/usr/lib/systemd/systemd" fi molecule --version molecule test -s ssh_hardening env: MOLECULE_DISTRO: ${{ matrix.molecule_distro }} working-directory: ansible_collections/devsec/hardening