-
Notifications
You must be signed in to change notification settings - Fork 66
64 lines (54 loc) · 1.85 KB
/
linter-analysis.yaml
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
name: Linter Analysis
on:
push:
branches: [ '**' ] # '*' will cause the workflow to run on all commits to all branches.
jobs:
# Hadolint: Job-1
Hadolint:
name: Hadolint
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Run Hadolint Action
uses: jbergstroem/[email protected]
with:
dockerfile: ./Dockerfile
config_file: linting-configs/.hadolint.yaml
error_level: 1 # Fail CI based on hadolint output (-1: never, 0: error, 1: warning, 2: info)
# ShellCheck: Job-2
ShellCheck:
name: ShellCheck
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
# .shellcheckrc is read from the current dir
- name: Copy Config to Parent Level Directory
run: cp $(pwd)/linting-configs/.shellcheckrc .
- name: Run ShellCheck Action
uses: ludeeus/action-shellcheck@master
with:
severity: error
# ansible-lint: Job-3
Ansible-Lint:
name: ansible-lint
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
# The latest ansible/ansible-lint-action removed the
# ability to specify configs from other dirs
- name: Copy Config to Parent Level Directory
run: cp $(pwd)/linting-configs/.ansible-lint .
# ansible-lint does not seem to recognize the .yaml
# extension for the requirements file and it is not
# configurable
- name: Updates requirements extension
run: cp $(pwd)/requirements.yaml requirements.yml
- name: Install requirements.yaml
run: ansible-galaxy install -r ./requirements.yaml
- name: Run ansible-lint Action
uses: ansible/[email protected]
env:
ANSIBLE_ROLES_PATH: "./roles"