-
Notifications
You must be signed in to change notification settings - Fork 5
129 lines (121 loc) · 3.94 KB
/
shell_lint.yml
File metadata and controls
129 lines (121 loc) · 3.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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