--- name: "CI" 'on': ["push", "pull_request"] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.x" - name: Install dependencies run: pip3 install yamllint ansible-lint - 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.x" - name: Install dependencies run: pip3 install ansible molecule molecule-plugins[docker] - 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 }}