Comprehensive dotfiles review and modernization #34
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |