Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
ae45b8f
feat: komplexní dev playbook pro Mac Studio – nginx, php, node, bun, …
claude Mar 18, 2026
45ee008
feat: přechod na self-hosted OpenClaw (Ollama) + Inspektor Klepítko p…
claude Mar 18, 2026
4799ce3
refactor: modulární playbook – macOS defaults, systémové služby, IIAB…
claude Mar 18, 2026
7af2242
feat: rozšíření cask apps – ghostty, windsurf, raycast, brave, discor…
claude Mar 19, 2026
4f2dfda
feat: observability stack (LGTM), shell extras, IIAB services expansion
claude Mar 19, 2026
1a98848
docs: kompletní přepis README pro Pazny Edition
claude Mar 19, 2026
8050dda
fix+feat: Tailscale, dnsmasq, exporters, port conflicts, restic, Clau…
claude Mar 19, 2026
6580cc6
fix+ci: revize – opravy bugů + pipeline setup
claude Mar 19, 2026
224b19d
fix: opravy z automatizovaného auditu playbooku
claude Mar 19, 2026
20f4458
fix: třetí kolo oprav z auditu playbooku
claude Mar 19, 2026
36e8ed9
fix: čtvrté kolo – systematická oprava nginx conf šablon + observability
claude Mar 19, 2026
823ba2c
fix: páté kolo – deep audit před spuštěním na novém Macu
claude Mar 20, 2026
72ce1cb
fix: šesté kolo – port konflikt OTLP, hostname, Redis, Prometheus dir
claude Mar 20, 2026
8e647e4
fix(iiab): multiple bugs in IIAB task files
claude Mar 20, 2026
fda5147
fix: replace hardcoded /opt/homebrew paths and fix port/deploy bugs
claude Mar 20, 2026
2d93e29
feat: add external SSD storage support for data-heavy directories
claude Mar 20, 2026
7b514dd
docs: add TLDR.md with complete setup guide, prerequisites, and troub…
claude Mar 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 58 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,49 +3,94 @@ name: CI
'on':
pull_request:
paths-ignore:
- '*.md' # Markdown docs need no linting/testing etc.
- '*.md'
push:
paths-ignore:
- '*.md'
branches:
- master
- 'claude/**'
schedule:
- cron: "0 5 * * 4"

jobs:

# ──────────────────────────────────────────────────────────────────────────
# LINT – rychlý statický check (yamllint + ansible-lint), běží na Linux
# ──────────────────────────────────────────────────────────────────────────
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v6
uses: actions/checkout@v4

- name: Set up Python 3.
uses: actions/setup-python@v6
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install test dependencies.
- name: Install lint dependencies.
run: pip3 install yamllint ansible ansible-lint

- name: Lint code.
- name: yamllint – YAML syntax check.
run: yamllint .

- name: ansible-lint – Ansible best practices.
run: ansible-lint

# ──────────────────────────────────────────────────────────────────────────
# SYNTAX CHECK – Ansible syntax-check bez spouštění (rychlé, na Linux)
# ──────────────────────────────────────────────────────────────────────────
syntax:
name: Syntax Check
runs-on: ubuntu-latest
steps:
- name: Check out the codebase.
uses: actions/checkout@v4

- name: Set up Python 3.
uses: actions/setup-python@v5
with:
python-version: '3.x'

- name: Install Ansible.
run: pip3 install ansible

- name: Install Ansible Galaxy requirements.
run: ansible-galaxy install -r requirements.yml

- name: Set up test inventory and config.
run: |
yamllint .
ansible-lint
cp tests/ansible.cfg ./ansible.cfg
cp tests/inventory ./inventory
cp tests/config.yml ./config.yml

- name: Ansible syntax check.
run: ansible-playbook main.yml --syntax-check

# ──────────────────────────────────────────────────────────────────────────
# INTEGRATION – plné spuštění na reálném macOS (pomalejší, drahé)
# Spouští se pouze na master/claude/** pushích, ne na každém PR commitu
# ──────────────────────────────────────────────────────────────────────────
integration:
name: Integration
name: Integration (${{ matrix.os }})
runs-on: ${{ matrix.os }}
# Na feature branchích spouštěj integration jen při push, ne PR draft
if: |
github.event_name == 'schedule' ||
github.event_name == 'push' ||
(github.event_name == 'pull_request' && github.event.pull_request.draft == false)
strategy:
fail-fast: false
matrix:
os:
- macos-15
- macos-14

steps:
- name: Check out the codebase.
uses: actions/checkout@v6
uses: actions/checkout@v4

- name: Uninstall GitHub Actions' built-in Homebrew.
run: tests/uninstall-homebrew.sh
Expand Down Expand Up @@ -79,7 +124,9 @@ jobs:
- name: Idempotence check.
run: |
idempotence=$(mktemp)
ansible-playbook main.yml | tee -a ${idempotence}
tail ${idempotence} | grep -q 'changed=0.*failed=0' && (echo 'Idempotence test: pass' && exit 0) || (echo 'Idempotence test: fail' && exit 1)
ansible-playbook main.yml | tee -a "${idempotence}"
tail "${idempotence}" | grep -q 'changed=0.*failed=0' \
&& (echo 'Idempotence test: pass' && exit 0) \
|| (echo 'Idempotence test: fail' && exit 1)
env:
ANSIBLE_FORCE_COLOR: '1'
Loading
Loading