Skip to content

Comprehensive dotfiles review and modernization #34

Comprehensive dotfiles review and modernization

Comprehensive dotfiles review and modernization #34

Workflow file for this run

name: Lint
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
shell-lint:
name: Shell Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Shell Lint
uses: azohra/shell-linter@latest
with:
path: "install.sh,install"
ansible-lint:
name: Ansible Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install collection dependencies
run: ansible-galaxy collection install -r defilan-osconfig/requirements.yml
- name: Run ansible-lint
uses: ansible/ansible-lint@a2bc8b8b13a80802215856c56823d85007d3baf5 # v25
with:
working_directory: defilan-osconfig
yaml-lint:
name: YAML Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install yamllint
run: pip install yamllint
- name: Run yamllint
run: |
yamllint -d "{extends: default, rules: {line-length: {max: 200}, truthy: disable}}" \
defilan-osconfig/playbook.yml \
defilan-osconfig/requirements.yml \
defilan-osconfig/roles/defilan-osconfig/tasks/ \
defilan-osconfig/roles/defilan-osconfig/vars/ \
defilan-osconfig/roles/defilan-osconfig/defaults/ \
defilan-osconfig/roles/defilan-osconfig/meta/ \
defilan-osconfig/roles/defilan-osconfig/handlers/ \
defilan-osconfig/roles/defilan-osconfig/tests/
ansible-syntax-check:
name: Ansible Syntax Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ansible
run: pip install ansible
- name: Install collection dependencies
run: ansible-galaxy collection install -r defilan-osconfig/requirements.yml
- name: Syntax check playbook
run: ansible-playbook defilan-osconfig/playbook.yml --syntax-check
ansible-dry-run-ubuntu:
name: Ansible Dry Run (Ubuntu)
runs-on: ubuntu-latest
needs: [ansible-lint, ansible-syntax-check]
strategy:
matrix:
config: [lightweight, developer]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ansible
run: pip install ansible
- name: Install collection dependencies
run: ansible-galaxy collection install -r defilan-osconfig/requirements.yml
- name: Run playbook in check mode (${{ matrix.config }})
run: |
ansible-playbook defilan-osconfig/playbook.yml \
-e "config=${{ matrix.config }}" \
--check --diff
continue-on-error: true
ansible-dry-run-macos:
name: Ansible Dry Run (macOS)
runs-on: macos-latest
needs: [ansible-lint, ansible-syntax-check]
strategy:
matrix:
config: [lightweight, developer]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Ansible
run: brew install ansible
- name: Install collection dependencies
run: ansible-galaxy collection install -r defilan-osconfig/requirements.yml
- name: Run playbook in check mode (${{ matrix.config }})
run: |
ansible-playbook defilan-osconfig/playbook.yml \
-e "config=${{ matrix.config }}" \
--check --diff
continue-on-error: true
zsh-syntax-check:
name: ZSH Syntax Check
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install zsh
run: sudo apt-get update && sudo apt-get install -y zsh
- name: Check ZSH file syntax
run: |
exit_code=0
for f in zsh/*.zsh zsh/zshrc.symlink; do
echo "Checking $f..."
if ! zsh -n "$f" 2>&1; then
echo "FAIL: $f"
exit_code=1
fi
done
exit $exit_code