Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[flake8]
filename =
*.py
max-line-length = 120
extend-exclude =
.venv/
venv/
1 change: 1 addition & 0 deletions .github/scripts/requirements-lint.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
flake8==7.1.1
143 changes: 143 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
name: Lint

on:
pull_request:
branches:
- develop
types:
- opened
- synchronize
- reopened

concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: true

jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Install dependencies
run: |
python -m pip install --upgrade \
pip \
setuptools \
wheel
python -m pip install -r ./.github/scripts/requirements-lint.txt

- name: Docker - find files
id: dokcer_files
if: always()
run: |
found_files=$(find . -type f -iname "Dockerfile" -o -iname "*.dockerfile")

echo "found_files: ${found_files}"

# do not quote to keep this as a single line
echo found_files=${found_files} >> $GITHUB_OUTPUT

- name: Docker - hadolint
if: always() && steps.dokcer_files.outputs.found_files
run: |
docker pull hadolint/hadolint

# create hadolint config file
cat <<EOF > .hadolint.yaml
---
ignored:
- DL3008
- DL3013
- DL3016
- DL3018
- DL3028
- DL3059
EOF

failed=0
failed_files=""

for file in ${{ steps.dokcer_files.outputs.found_files }}; do
echo "::group::${file}"
docker run --rm -i \
-e "NO_COLOR=0" \
-e "HADOLINT_VERBOSE=1" \
-v $(pwd)/.hadolint.yaml:/.config/hadolint.yaml \
hadolint/hadolint < $file || {
failed=1
failed_files="$failed_files $file"
}
echo "::endgroup::"
done

if [ $failed -ne 0 ]; then
echo "::error:: hadolint failed for the following files: $failed_files"
exit 1
fi

- name: Python - flake8
if: always()
run: |
python -m flake8 \
--color=always \
--verbose

- name: YAML - find files
id: yaml_files
if: always()
run: |
# space separated list of files
FILES=.clang-format

# empty placeholder
found_files=""

for FILE in ${FILES}; do
if [ -f "$FILE" ]
then
found_files="$found_files $FILE"
fi
done

echo "found_files=${found_files}" >> $GITHUB_OUTPUT

- name: YAML - yamllint
id: yamllint
if: always()
uses: ibiqlik/action-yamllint@v3
with:
# https://yamllint.readthedocs.io/en/stable/configuration.html#default-configuration
config_data: |
extends: default
rules:
comments:
level: error
document-start:
level: error
line-length:
max: 120
new-line-at-end-of-file:
level: error
new-lines:
type: unix
truthy:
# GitHub uses "on" for workflow event triggers
# .clang-format file has options of "Yes" "No" that will be caught by this, so changed to "warning"
allowed-values: ['true', 'false', 'on']
check-keys: true
level: warning
file_or_dir: . ${{ steps.yaml_files.outputs.found_files }}

- name: YAML - log
if: always() && steps.yamllint.outcome == 'failure'
run: |
cat "${{ steps.yamllint.outputs.logfile }}" >> $GITHUB_STEP_SUMMARY
9 changes: 6 additions & 3 deletions .gitpod.dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
FROM gitpod/workspace-full-vnc
FROM gitpod/workspace-full-vnc:2025-02-12-08-12-04

# Hadolint complains about sudo; however gitpod recommends using sudo to install packages
# hadolint ignore=DL3004
RUN sudo apt-get update \
&& sudo apt-get install -y \
firefox \
gulp \
&& python -m pip install --upgrade pip \
&& pip install selenium==4.1.0 requests==2.25.1
&& sudo apt-get clean \
&& python -m pip install --no-cache-dir --upgrade pip \
&& python -m pip install --no-cache-dir selenium==4.1.0 'requests<3'
Loading