--- name: "CI" 'on': push: pull_request: schedule: - cron: '0 12 * * 5' jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install dependencies run: pip3 install yamllint==1.37.1 ansible-lint==25.9.2 - name: Copy example files run: | # Use example files for testing instead of encrypted files for f in group_vars/*.example; do mv "$f" "$(echo "$f" | sed s/\.example//)"; done for f in host_vars/*.example; do mv "$f" "$(echo "$f" | sed s/\.example//)"; done - name: Run run: | yamllint . ansible-lint playbook: strategy: fail-fast: false matrix: molecule_distro: - name: archlinux runs_on: "ubuntu-latest" - name: ubuntu runs_on: "ubuntu-latest" - name: debian runs_on: "ubuntu-latest" - name: raspberrypi runs_on: "ubuntu-24.04-arm" runs-on: ${{ matrix.molecule_distro.runs_on }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.13" - name: Install dependencies run: pip3 install ansible-core==2.19.3 molecule==25.9.0 molecule-plugins[docker,podman]==25.8.12 - name: Remove encrypted var files run: | rm host_vars/*.yml rm group_vars/*.yml - name: Copy group_vars example files run: | # Use example group_vars files for testing instead of encrypted files for f in group_vars/*.example; do mv "$f" "$(echo "$f" | sed s/\.example//)"; done - name: Run env: PY_COLORS: 1 ANSIBLE_FORCE_COLOR: 1 run: >- molecule --version && ansible --version && MOLECULE_COMMAND=${{ matrix.molecule_distro.command }} molecule test -s ${{ matrix.molecule_distro.name }}