mirror of
https://github.com/LOLBAS-Project/LOLBAS
synced 2024-12-29 00:08:11 +01:00
80267d91dd
* Adding GitHub Actions workflow test for duplicate filenames * Adding generic error message * Deduping fsutil.exe and teams.exe
60 lines
2.4 KiB
YAML
60 lines
2.4 KiB
YAML
---
|
|
name: PUSH & PULL REQUEST - YAML Lint and Schema Validation Checks
|
|
on: [push,pull_request]
|
|
|
|
jobs:
|
|
lintFiles:
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Check file extensions
|
|
run: |
|
|
files=$(find "$GITHUB_WORKSPACE/yml" -type f -not -name "*.yml");
|
|
if [[ $files ]]; then
|
|
echo "::error::Files with unexpected extension found, please ensure you use '.yml' (all lower case) for files in the yml/ folder.";
|
|
for i in $files; do echo "::error file=$i,line=1::Unexpected extension"; done
|
|
exit 1;
|
|
fi
|
|
unset files
|
|
- name: Check duplicate file names
|
|
run: |
|
|
files=$(find "$GITHUB_WORKSPACE/yml/OSBinaries" "$GITHUB_WORKSPACE/yml/OtherMSBinaries" -type f -printf '%h %f\n' -iname "*.yml" | sort -t ' ' -k 2,2 -f | uniq -i -f 1 --all-repeated=separate | tr ' ' '/')
|
|
if [[ $files ]]; then
|
|
echo "::error::Files with duplicate filenames detected, please make sure you don't create duplicate entries.";
|
|
for i in $files; do echo "::error file=$i,line=1::Duplicate filename"; done
|
|
exit 1;
|
|
fi
|
|
unset files
|
|
- name: yaml-lint
|
|
uses: ibiqlik/action-yamllint@v3
|
|
with:
|
|
no_warnings: true
|
|
file_or_dir: yml/**/*.yml
|
|
config_file: .github/.yamllint
|
|
- name: Validate Template Schema
|
|
uses: cketti/action-pykwalify@v0.3-temp-fix
|
|
with:
|
|
files: YML-Template.yml
|
|
schema: YML-Schema.yml
|
|
- name: Validate OSBinaries YAML Schema
|
|
uses: cketti/action-pykwalify@v0.3-temp-fix
|
|
with:
|
|
files: yml/OSBinaries/*.yml
|
|
schema: YML-Schema.yml
|
|
- name: Validate OSLibraries YAML Schema
|
|
uses: cketti/action-pykwalify@v0.3-temp-fix
|
|
with:
|
|
files: yml/OSLibraries/*.yml
|
|
schema: YML-Schema.yml
|
|
- name: Validate OSScripts YAML Schema
|
|
uses: cketti/action-pykwalify@v0.3-temp-fix
|
|
with:
|
|
files: yml/OSScripts/*.yml
|
|
schema: YML-Schema.yml
|
|
- name: Validate OtherMSBinaries YAML Schema
|
|
uses: cketti/action-pykwalify@v0.3-temp-fix
|
|
with:
|
|
files: yml/OtherMSBinaries/*.yml
|
|
schema: YML-Schema.yml
|