name: HadoLint on: pull_request jobs: Linter: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - id: files uses: tj-actions/changed-files@v35.9.2 with: files: | **/Dockerfile* - name: Run checks env: HADOLINT: "${{ github.workspace }}/hadolint" HADOLINT_VER: "2.1.0" VERIFICATION_LEVEL: "error" run: | CHANGED_FILES="${{steps.files.outputs.all_changed_files}}" if [[ ! -z $CHANGED_FILES ]]; then curl -sL -o $HADOLINT "https://github.com/hadolint/hadolint/releases/download/v$HADOLINT_VER/hadolint-Linux-x86_64" && chmod 700 $HADOLINT echo "HadoLint version: "$($HADOLINT --version) echo "The files will be checked: "$(echo $CHANGED_FILES) mkdir -p hadolint_report $HADOLINT --no-fail --format json $CHANGED_FILES > ./hadolint_report/hadolint_report.json GET_VERIFICATION_LEVEL=$(cat ./hadolint_report/hadolint_report.json | jq -r '.[] | .level') for LINE in $GET_VERIFICATION_LEVEL; do if [[ $LINE =~ $VERIFICATION_LEVEL ]]; then pip install json2html python ./tests/json_to_html.py ./hadolint_report/hadolint_report.json exit 1 else exit 0 fi done else echo "No files with the \"Dockerfile*\" name found" fi - name: Upload artifacts if: failure() uses: actions/upload-artifact@v3.1.1 with: name: hadolint_report path: hadolint_report