Skip to content

Commit

Permalink
Merge branch 'feat/init_project' into 'master'
Browse files Browse the repository at this point in the history
feat(system): add phone system

See merge request ae_group/esp-ui!2
  • Loading branch information
Lzw655 committed Aug 11, 2024
2 parents 565f24b + e5383f8 commit 772d450
Show file tree
Hide file tree
Showing 261 changed files with 87,870 additions and 1 deletion.
18 changes: 18 additions & 0 deletions .build-rules.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Note: All operators are binary operators. For more than two operands, you may use the nested parentheses trick.
# For example:
# * A == 1 or (B == 2 and C in [1,2,3])
# * (A == 1 and B == 2) or (C not in ["3", "4", 5])

# Componet test_apps
test_apps:
enable:
- if: IDF_TARGET in ["esp32s2", "esp32s3", "esp32p4", "esp32c3", "esp32c6"]

# Examples
examples/esp_ui_phone_p4_function_ev_board:
enable:
- if: IDF_TARGET in ["esp32p4"]

examples/esp_ui_phone_s3_lcd_ev_board:
enable:
- if: IDF_TARGET in ["esp32s3"]
141 changes: 141 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
[flake8]

select =
# Full lists are given in order to suppress all errors from other plugins
# Full list of pyflakes error codes:
F401, # module imported but unused
F402, # import module from line N shadowed by loop variable
F403, # 'from module import *' used; unable to detect undefined names
F404, # future import(s) name after other statements
F405, # name may be undefined, or defined from star imports: module
F406, # 'from module import *' only allowed at module level
F407, # an undefined __future__ feature name was imported
F601, # dictionary key name repeated with different values
F602, # dictionary key variable name repeated with different values
F621, # too many expressions in an assignment with star-unpacking
F622, # two or more starred expressions in an assignment (a, *b, *c = d)
F631, # assertion test is a tuple, which are always True
F701, # a break statement outside of a while or for loop
F702, # a continue statement outside of a while or for loop
F703, # a continue statement in a finally block in a loop
F704, # a yield or yield from statement outside of a function
F705, # a return statement with arguments inside a generator
F706, # a return statement outside of a function/method
F707, # an except: block as not the last exception handler
F721, F722, # doctest syntax error syntax error in forward type annotation
F811, # redefinition of unused name from line N
F812, # list comprehension redefines name from line N
F821, # undefined name name
F822, # undefined name name in __all__
F823, # local variable name referenced before assignment
F831, # duplicate argument name in function definition
F841, # local variable name is assigned to but never used
F901, # raise NotImplemented should be raise NotImplementedError

# Full list of pycodestyle violations:
E101, # indentation contains mixed spaces and tabs
E111, # indentation is not a multiple of four
E112, # expected an indented block
E113, # unexpected indentation
E114, # indentation is not a multiple of four (comment)
E115, # expected an indented block (comment)
E116, # unexpected indentation (comment)
E121, # continuation line under-indented for hanging indent
E122, # continuation line missing indentation or outdented
E123, # closing bracket does not match indentation of opening bracket's line
E124, # closing bracket does not match visual indentation
E125, # continuation line with same indent as next logical line
E126, # continuation line over-indented for hanging indent
E127, # continuation line over-indented for visual indent
E128, # continuation line under-indented for visual indent
E129, # visually indented line with same indent as next logical line
E131, # continuation line unaligned for hanging indent
E133, # closing bracket is missing indentation
E201, # whitespace after '('
E202, # whitespace before ')'
E203, # whitespace before ':'
E211, # whitespace before '('
E221, # multiple spaces before operator
E222, # multiple spaces after operator
E223, # tab before operator
E224, # tab after operator
E225, # missing whitespace around operator
E226, # missing whitespace around arithmetic operator
E227, # missing whitespace around bitwise or shift operator
E228, # missing whitespace around modulo operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
E242, # tab after ','
E251, # unexpected spaces around keyword / parameter equals
E261, # at least two spaces before inline comment
E262, # inline comment should start with '# '
E265, # block comment should start with '# '
E266, # too many leading '#' for block comment
E271, # multiple spaces after keyword
E272, # multiple spaces before keyword
E273, # tab after keyword
E274, # tab before keyword
E275, # missing whitespace after keyword
E301, # expected 1 blank line, found 0
E302, # expected 2 blank lines, found 0
E303, # too many blank lines
E304, # blank lines found after function decorator
E305, # expected 2 blank lines after end of function or class
E306, # expected 1 blank line before a nested definition
E401, # multiple imports on one line
E402, # module level import not at top of file
E501, # line too long (82 > 79 characters)
E502, # the backslash is redundant between brackets
E701, # multiple statements on one line (colon)
E702, # multiple statements on one line (semicolon)
E703, # statement ends with a semicolon
E704, # multiple statements on one line (def)
E711, # comparison to None should be 'if cond is None:'
E712, # comparison to True should be 'if cond is True:' or 'if cond:'
E713, # test for membership should be 'not in'
E714, # test for object identity should be 'is not'
E721, # do not compare types, use 'isinstance()'
E722, # do not use bare except, specify exception instead
E731, # do not assign a lambda expression, use a def
E741, # do not use variables named 'l', 'O', or 'I'
E742, # do not define classes named 'l', 'O', or 'I'
E743, # do not define functions named 'l', 'O', or 'I'
E901, # SyntaxError or IndentationError
E902, # IOError
W191, # indentation contains tabs
W291, # trailing whitespace
W292, # no newline at end of file
W293, # blank line contains whitespace
W391, # blank line at end of file
W503, # line break before binary operator
W504, # line break after binary operator
W505, # doc line too long (82 > 79 characters)
W601, # .has_key() is deprecated, use 'in'
W602, # deprecated form of raising exception
W603, # '<>' is deprecated, use '!='
W604, # backticks are deprecated, use 'repr()'
W605, # invalid escape sequence 'x'
W606, # 'async' and 'await' are reserved keywords starting with Python 3.7

# Full list of flake8 violations
E999, # failed to compile a file into an Abstract Syntax Tree for the plugins that require it

# Full list of mccabe violations
C901 # complexity value provided by the user

ignore =
E221, # multiple spaces before operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
W503, # line break before binary operator
W504 # line break after binary operator

max-line-length = 160

show_source = True

statistics = True

exclude =
.git,
__pycache__,
136 changes: 136 additions & 0 deletions .github/scripts/check_lib_versions.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
#!/bin/bash

# Function: Check version format
# Input parameters: $1 The version number
# Return value: 0 if the version numbers are correct, 1 if the first version is incorrect,
check_version_format() {
version_regex="^v[0-9]+\.[0-9]+\.[0-9]+$"

if [[ ! $1 =~ $version_regex ]]; then
return 1
fi

return 0
}

if [ $# -lt 1 ]; then
latest_version="0.0.0"
echo "Don't get the latest version, use \"0.0.0\" as default"
else
# Get the first input parameter as the version to be compared
latest_version="$1"
# Check the version format
check_version_format "${latest_version}"
result=$?
if [ ${result} -ne 0 ]; then
echo "The latest release version (${latest_version}) format is incorrect."
exit 1
fi
fi

# Specify the directory path
target_directory="./"

echo "Checking directory: ${target_directory}"

# Function: Check if a file exists
# Input parameters: $1 The file to check
# Return value: 0 if the file exists, 1 if the file does not exist
check_file_exists() {
if [ ! -f "$1" ]; then
echo "File '$1' not found."
return 1
fi
return 0
}

# Function: Compare version numbers
# Input parameters: $1 The first version number, $2 The second version number
# Return value: 0 if the version numbers are equal, 1 if the first version is greater,
# 2 if the second version is greater,
compare_versions() {
version_regex="^v[0-9]+\.[0-9]+\.[0-9]+$"

version1=$(echo "$1" | cut -c 2-) # Remove the 'v' at the beginning of the version number
version2=$(echo "$2" | cut -c 2-)

IFS='.' read -ra v1_parts <<< "$version1"
IFS='.' read -ra v2_parts <<< "$version2"

for ((i=0; i<${#v1_parts[@]}; i++)); do
if [[ "${v1_parts[$i]}" -lt "${v2_parts[$i]}" ]]; then
return 2
elif [[ "${v1_parts[$i]}" -gt "${v2_parts[$i]}" ]]; then
return 1
fi
done

return 0
}

echo "Checking file: library.properties"
# Check if "library.properties" file exists
check_file_exists "${target_directory}/library.properties"
if [ $? -ne 0 ]; then
exit 1
fi
# Read the version information from the file
arduino_version=v$(grep -E '^version=' "${target_directory}/library.properties" | cut -d '=' -f 2)
echo "Get Arduino version: ${arduino_version}"
# Check the version format
check_version_format "${arduino_version}"
result=$?
if [ ${result} -ne 0 ]; then
echo "Arduino version (${arduino_version}) format is incorrect."
exit 1
fi

# Compare Arduino Library version with the latest release version
compare_versions "${arduino_version}" "${latest_version}"
result=$?
if [ ${result} -ne 1 ]; then
if [ ${result} -eq 3 ]; then
echo "Arduino version (${arduino_version}) is incorrect."
else
echo "Arduino version (${arduino_version}) is not greater than the latest release version (${latest_version})."
exit 1
fi
fi

echo "Checking file: idf_component.yml"
# Check if "idf_component.yml" file exists
check_file_exists "${target_directory}/idf_component.yml"
if [ $? -eq 0 ]; then
# Read the version information from the file
idf_version=v$(grep -m 1 -oP '(?<=version:\s)v?\S+' "${target_directory}/idf_component.yml")
echo "Get IDF component version: ${idf_version}"
# Check the version format
check_version_format "${idf_version}"
result=$?
if [ ${result} -ne 0 ]; then
echo "IDF component (${idf_version}) format is incorrect."
exit 1
fi
# Compare IDF Component version with Arduino Library version
compare_versions ${idf_version} ${arduino_version}
result=$?
if [ ${result} -ne 0 ]; then
if [ ${result} -eq 3 ]; then
echo "IDF component version (${idf_version}) is incorrect."
else
echo "IDF component version (${idf_version}) is not equal to the Arduino version (${arduino_version})."
exit 1
fi
fi
# Compare IDF Component version with the latest release version
compare_versions ${idf_version} ${latest_version}
result=$?
if [ ${result} -ne 1 ]; then
if [ ${result} -eq 3 ]; then
echo "IDF component version (${idf_version}) is incorrect."
else
echo "IDF component version (${idf_version}) is not greater than the latest release version (${latest_version})."
exit 1
fi
fi
fi
18 changes: 18 additions & 0 deletions .github/workflows/arduino_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Arduino Lint Action

on:
workflow_dispatch:
pull_request:
types: [opened, reopened, synchronize]
push:
branches:
- master

jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: arduino/arduino-lint-action@v1
with:
library-manager: update
32 changes: 32 additions & 0 deletions .github/workflows/check_lib_versions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Check Library Versions

on:
pull_request:
types: [opened, reopened, synchronize]
push:
branches:
- master

jobs:
check_versions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Get latest release info of repository
id: last_release
uses: InsonusK/[email protected]
with:
myToken: ${{ github.token }}
exclude_types: "draft|prerelease"
view_top: 1
- name: Print result
run: |
echo "id: ${{ steps.last_release.outputs.id }}"
echo "name: ${{ steps.last_release.outputs.name }}"
echo "tag_name: ${{ steps.last_release.outputs.tag_name }}"
echo "created_at: ${{ steps.last_release.outputs.created_at }}"
echo "draft: ${{ steps.last_release.outputs.draft }}"
echo "prerelease: ${{ steps.last_release.outputs.prerelease }}"
echo "url: ${{ steps.last_release.outputs.url }}"
- name: Check & Compare versions
run: bash ./.github/scripts/check_lib_versions.sh ${{ steps.last_release.outputs.tag_name }}
19 changes: 19 additions & 0 deletions .github/workflows/upload_component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Push components to Espressif Component Service

on:
release:
types: [published]

jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
submodules: 'recursive'
- name: Upload components to component service
uses: espressif/upload-components-ci-action@v1
with:
name: "esp-ui"
namespace: "espressif"
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
Loading

0 comments on commit 772d450

Please sign in to comment.