workstation-ansible/.ansible/roles/geerlingguy.docker/.github/workflows/ci.yml
Travis Herbranson 06034dec95 Add workstation playbook — consolidates arch_custom + manjaro-laptop
New roles:
- workstation: Arch base (yay, UV, Hyprland, tiling tools, fonts,
  productivity apps, NVIDIA auto-detect, tmux + TPM)
- dev_apps: optional dev tools (PyCharm, R/RStudio, databases)
- claude_code: Claude Code CLI install/update via npm
- user_bootstrap: fresh machine user setup (SSH key, sudo)

CLI/shell/terminal setup excluded — handled by existing cli_modern role.
workstation.yml runs cli_modern first, then workstation roles in phases.
All roles tagged for selective deployment.

Passes ansible-lint at production level.
2026-05-02 18:38:01 -04:00

72 lines
1.5 KiB
YAML

---
name: CI
'on':
pull_request:
push:
branches:
- master
schedule:
- cron: "0 7 * * 0"
defaults:
run:
working-directory: 'geerlingguy.docker'
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'geerlingguy.docker'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.13' # Can't go to 3.14+ until Ansible 13.x
- name: Install test dependencies.
run: pip3 install yamllint
- name: Lint code.
run: |
yamllint .
molecule:
name: Molecule
runs-on: ubuntu-latest
strategy:
matrix:
distro:
- rockylinux10
- ubuntu2404
- ubuntu2204
- debian13
- debian12
- fedora43
- opensuseleap15
steps:
- name: Check out the codebase.
uses: actions/checkout@v4
with:
path: 'geerlingguy.docker'
- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.13' # Can't go to 3.14+ until Ansible 13.x
- name: Install test dependencies.
run: pip3 install ansible molecule molecule-plugins[docker] docker
- name: Run Molecule tests.
run: molecule test
env:
PY_COLORS: '1'
ANSIBLE_FORCE_COLOR: '1'
MOLECULE_DISTRO: ${{ matrix.distro }}