--- name: "devsec.ssh_hardening with custom tests" on: # yamllint disable-line rule:truthy workflow_dispatch: push: branches: [master] paths: - 'roles/ssh_hardening/**' - 'molecule/ssh_hardening_custom_tests/**' - '.github/workflows/ssh_hardening_custom_tests.yml' - 'requirements.txt' pull_request: branches: [master] paths: - 'roles/ssh_hardening/**' - 'molecule/ssh_hardening_custom_tests/**' - '.github/workflows/ssh_hardening_custom_tests.yml' - 'requirements.txt' schedule: - cron: '0 6 * * 4' concurrency: group: >- ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} cancel-in-progress: true jobs: build: runs-on: ubuntu-22.04 env: PY_COLORS: 1 ANSIBLE_FORCE_COLOR: 1 strategy: fail-fast: false matrix: include: # needs fix - opensuse has different file location for conf and pam (/usr/etc/ssh/?, /usr/lib/pam.d/?) # - molecule_distro: opensuse_tumbleweed # molecule_docker_command: "/usr/lib/systemd/systemd" - molecule_distro: alpine molecule_docker_command: "/sbin/init" molecule_distro: - almalinux8 - almalinux9 - almalinux10 - centosstream9 - rocky8 - rocky9 - rocky10 - fedora39 - fedora40 - ubuntu2004 - ubuntu2204 - ubuntu2404 - debian11 - debian12 - debian13 - amazon2023 - arch molecule_docker_command: - "/lib/systemd/systemd" steps: - name: Checkout repo uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 with: path: ansible_collections/devsec/hardening submodules: true - name: Set up Python uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 with: python-version: 3.13 cache: 'pip' - name: Install dependencies run: 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" ansible-galaxy collection install 'community.crypto:<3.0.0' ansible-galaxy collection install 'community.general:<12.0.0' working-directory: ansible_collections/devsec/hardening if: matrix.molecule_distro == 'rocky8' || matrix.molecule_distro == 'almalinux8' - name: Test with molecule run: molecule test -s ssh_hardening_custom_tests env: MOLECULE_DISTRO: ${{ matrix.molecule_distro }} MOLECULE_DOCKER_COMMAND: ${{ matrix.molecule_docker_command }} working-directory: ansible_collections/devsec/hardening