fastled 1.2.23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastled-1.2.23/.aiderignore +7 -0
- fastled-1.2.23/.github/workflows/build_multi_docker_image.yml +138 -0
- fastled-1.2.23/.github/workflows/build_webpage.yml +34 -0
- fastled-1.2.23/.github/workflows/lint.yml +23 -0
- fastled-1.2.23/.github/workflows/publish_release.yml +187 -0
- fastled-1.2.23/.github/workflows/test_build_exe.yml +54 -0
- fastled-1.2.23/.github/workflows/test_macos.yml +29 -0
- fastled-1.2.23/.github/workflows/test_ubuntu.yml +29 -0
- fastled-1.2.23/.github/workflows/test_win.yml +32 -0
- fastled-1.2.23/.gitignore +152 -0
- fastled-1.2.23/.pylintrc +2 -0
- fastled-1.2.23/.vscode/launch.json +44 -0
- fastled-1.2.23/.vscode/settings.json +29 -0
- fastled-1.2.23/.vscode/tasks.json +41 -0
- fastled-1.2.23/LICENSE +21 -0
- fastled-1.2.23/MANIFEST.in +3 -0
- fastled-1.2.23/PKG-INFO +382 -0
- fastled-1.2.23/README.md +356 -0
- fastled-1.2.23/RELEASE.md +8 -0
- fastled-1.2.23/TODO.md +2 -0
- fastled-1.2.23/build_exe.py +48 -0
- fastled-1.2.23/build_site.py +20 -0
- fastled-1.2.23/clean +21 -0
- fastled-1.2.23/install +37 -0
- fastled-1.2.23/install_linux.sh +10 -0
- fastled-1.2.23/lint +17 -0
- fastled-1.2.23/pyproject.toml +63 -0
- fastled-1.2.23/requirements.testing.txt +7 -0
- fastled-1.2.23/setup.cfg +4 -0
- fastled-1.2.23/setup.py +24 -0
- fastled-1.2.23/src/fastled/__init__.py +352 -0
- fastled-1.2.23/src/fastled/app.py +107 -0
- fastled-1.2.23/src/fastled/assets/example.txt +1 -0
- fastled-1.2.23/src/fastled/cli.py +19 -0
- fastled-1.2.23/src/fastled/client_server.py +401 -0
- fastled-1.2.23/src/fastled/compile_server.py +92 -0
- fastled-1.2.23/src/fastled/compile_server_impl.py +247 -0
- fastled-1.2.23/src/fastled/docker_manager.py +784 -0
- fastled-1.2.23/src/fastled/filewatcher.py +202 -0
- fastled-1.2.23/src/fastled/keyboard.py +116 -0
- fastled-1.2.23/src/fastled/live_client.py +86 -0
- fastled-1.2.23/src/fastled/open_browser.py +161 -0
- fastled-1.2.23/src/fastled/open_browser2.py +111 -0
- fastled-1.2.23/src/fastled/parse_args.py +195 -0
- fastled-1.2.23/src/fastled/paths.py +4 -0
- fastled-1.2.23/src/fastled/project_init.py +129 -0
- fastled-1.2.23/src/fastled/select_sketch_directory.py +35 -0
- fastled-1.2.23/src/fastled/settings.py +13 -0
- fastled-1.2.23/src/fastled/site/build.py +457 -0
- fastled-1.2.23/src/fastled/sketch.py +97 -0
- fastled-1.2.23/src/fastled/spinner.py +34 -0
- fastled-1.2.23/src/fastled/string_diff.py +42 -0
- fastled-1.2.23/src/fastled/test/can_run_local_docker_tests.py +13 -0
- fastled-1.2.23/src/fastled/test/examples.py +49 -0
- fastled-1.2.23/src/fastled/types.py +61 -0
- fastled-1.2.23/src/fastled/util.py +10 -0
- fastled-1.2.23/src/fastled/web_compile.py +285 -0
- fastled-1.2.23/src/fastled.egg-info/PKG-INFO +382 -0
- fastled-1.2.23/src/fastled.egg-info/SOURCES.txt +84 -0
- fastled-1.2.23/src/fastled.egg-info/dependency_links.txt +1 -0
- fastled-1.2.23/src/fastled.egg-info/entry_points.txt +4 -0
- fastled-1.2.23/src/fastled.egg-info/requires.txt +11 -0
- fastled-1.2.23/src/fastled.egg-info/top_level.txt +1 -0
- fastled-1.2.23/test +9 -0
- fastled-1.2.23/tests/html/index.html +9 -0
- fastled-1.2.23/tests/test_api.py +68 -0
- fastled-1.2.23/tests/test_bad_ino.py +58 -0
- fastled-1.2.23/tests/test_build.py +57 -0
- fastled-1.2.23/tests/test_build_examples.py +30 -0
- fastled-1.2.23/tests/test_cli.py +26 -0
- fastled-1.2.23/tests/test_compile_server.py +30 -0
- fastled-1.2.23/tests/test_docker_linux_on_windows.py +21 -0
- fastled-1.2.23/tests/test_embedded_data.py +56 -0
- fastled-1.2.23/tests/test_examples.py +50 -0
- fastled-1.2.23/tests/test_filechanger.py +54 -0
- fastled-1.2.23/tests/test_http_server.py +31 -0
- fastled-1.2.23/tests/test_ino/bad/bad.ino +141 -0
- fastled-1.2.23/tests/test_ino/bad_platformio/bad_platformio.ino +11 -0
- fastled-1.2.23/tests/test_ino/bad_platformio/platformio.ini +41 -0
- fastled-1.2.23/tests/test_ino/embedded/data/bigdata.dat +0 -0
- fastled-1.2.23/tests/test_ino/embedded/wasm.ino +136 -0
- fastled-1.2.23/tests/test_ino/wasm/wasm.ino +136 -0
- fastled-1.2.23/tests/test_project_init.py +47 -0
- fastled-1.2.23/tests/test_server_and_client_seperatly.py +37 -0
- fastled-1.2.23/tests/test_webcompile.py +43 -0
- fastled-1.2.23/upload_package.sh +10 -0
@@ -0,0 +1,138 @@
|
|
1
|
+
name: Build and Push Multi Docker Image
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main # Adjust this to your default branch
|
7
|
+
schedule:
|
8
|
+
- cron: '0 12 * * *' # Executes every day at 4:00 AM Pacific Time
|
9
|
+
|
10
|
+
env:
|
11
|
+
REGISTRY_IMAGE: niteris/fastled-wasm # Replace with your Docker Hub username and repository
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
check-if-changed:
|
15
|
+
runs-on: ubuntu-24.04
|
16
|
+
outputs:
|
17
|
+
should_run: ${{ steps.check.outputs.should_run }}
|
18
|
+
steps:
|
19
|
+
- name: Check workflow repo changes
|
20
|
+
uses: actions/checkout@v4
|
21
|
+
with:
|
22
|
+
fetch-depth: 2
|
23
|
+
- name: Check FastLED repo
|
24
|
+
uses: actions/checkout@v4
|
25
|
+
with:
|
26
|
+
repository: fastled/fastled
|
27
|
+
path: fastled
|
28
|
+
- id: check
|
29
|
+
run: |
|
30
|
+
# Check if there are any changes in workflow repository
|
31
|
+
WORKFLOW_CHANGED=$(git diff --quiet HEAD^1 HEAD || echo "changed")
|
32
|
+
|
33
|
+
# Check FastLED repo for changes in last 24 hours
|
34
|
+
cd fastled
|
35
|
+
FASTLED_CHANGED=$(git log --since="24 hours ago" --oneline | wc -l)
|
36
|
+
|
37
|
+
if [[ -n "$WORKFLOW_CHANGED" ]] || [[ "$FASTLED_CHANGED" -gt 0 ]]; then
|
38
|
+
echo "Changes detected in workflow repository or FastLED in last 24h"
|
39
|
+
echo "should_run=true" >> $GITHUB_OUTPUT
|
40
|
+
else
|
41
|
+
echo "No recent changes detected"
|
42
|
+
echo "should_run=false" >> $GITHUB_OUTPUT
|
43
|
+
fi
|
44
|
+
|
45
|
+
build:
|
46
|
+
needs: check-if-changed
|
47
|
+
if: needs.check-if-changed.outputs.should_run == 'true'
|
48
|
+
runs-on: ubuntu-24.04
|
49
|
+
strategy:
|
50
|
+
fail-fast: false
|
51
|
+
matrix:
|
52
|
+
platform:
|
53
|
+
- linux/amd64
|
54
|
+
- linux/arm64
|
55
|
+
steps:
|
56
|
+
- name: Prepare
|
57
|
+
run: |
|
58
|
+
platform=${{ matrix.platform }}
|
59
|
+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
60
|
+
- name: Docker meta
|
61
|
+
id: meta
|
62
|
+
uses: docker/metadata-action@v5
|
63
|
+
with:
|
64
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
65
|
+
- name: Set up QEMU
|
66
|
+
uses: docker/setup-qemu-action@v3
|
67
|
+
- name: Set up Docker Buildx
|
68
|
+
uses: docker/setup-buildx-action@v3
|
69
|
+
- name: Login to Docker Hub
|
70
|
+
uses: docker/login-action@v3
|
71
|
+
with:
|
72
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
73
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
74
|
+
- name: Build and push by digest
|
75
|
+
id: build
|
76
|
+
uses: docker/build-push-action@v6
|
77
|
+
with:
|
78
|
+
platforms: ${{ matrix.platform }}
|
79
|
+
context: https://github.com/fastled/fastled.git
|
80
|
+
file: src/platforms/wasm/compiler/Dockerfile
|
81
|
+
labels: ${{ steps.meta.outputs.labels }}
|
82
|
+
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
|
83
|
+
build-args: |
|
84
|
+
PLATFORM_TAG=${{ matrix.platform == 'linux/arm64' && '-arm64' || '' }}
|
85
|
+
cache-from: type=gha
|
86
|
+
cache-to: type=gha,mode=max,compression=zstd
|
87
|
+
- name: Export digest
|
88
|
+
run: |
|
89
|
+
mkdir -p /tmp/digests
|
90
|
+
digest="${{ steps.build.outputs.digest }}"
|
91
|
+
touch "/tmp/digests/${digest#sha256:}"
|
92
|
+
- name: Upload digest
|
93
|
+
uses: actions/upload-artifact@v4
|
94
|
+
with:
|
95
|
+
name: digests-${{ env.PLATFORM_PAIR }}
|
96
|
+
path: /tmp/digests/*
|
97
|
+
if-no-files-found: error
|
98
|
+
retention-days: 1
|
99
|
+
|
100
|
+
merge:
|
101
|
+
runs-on: ubuntu-24.04
|
102
|
+
needs:
|
103
|
+
- check-if-changed
|
104
|
+
- build
|
105
|
+
if: needs.check-if-changed.outputs.should_run == 'true'
|
106
|
+
steps:
|
107
|
+
- name: Download digests
|
108
|
+
uses: actions/download-artifact@v4
|
109
|
+
with:
|
110
|
+
path: /tmp/digests
|
111
|
+
pattern: digests-*
|
112
|
+
merge-multiple: true
|
113
|
+
|
114
|
+
- name: Set up Docker Buildx
|
115
|
+
uses: docker/setup-buildx-action@v3
|
116
|
+
|
117
|
+
- name: Docker meta
|
118
|
+
id: meta
|
119
|
+
uses: docker/metadata-action@v5
|
120
|
+
with:
|
121
|
+
images: ${{ env.REGISTRY_IMAGE }}
|
122
|
+
|
123
|
+
- name: Login to Docker Hub
|
124
|
+
uses: docker/login-action@v3
|
125
|
+
with:
|
126
|
+
username: ${{ secrets.DOCKER_USERNAME }}
|
127
|
+
password: ${{ secrets.DOCKER_PASSWORD }}
|
128
|
+
|
129
|
+
- name: Create manifest list and push
|
130
|
+
working-directory: /tmp/digests
|
131
|
+
run: |
|
132
|
+
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
133
|
+
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
|
134
|
+
|
135
|
+
- name: Inspect image
|
136
|
+
run: |
|
137
|
+
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
|
138
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: Build Webpage
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ main ]
|
6
|
+
pull_request:
|
7
|
+
branches: [ main ]
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
deploy:
|
11
|
+
runs-on: ubuntu-24.04
|
12
|
+
permissions:
|
13
|
+
contents: write # This allows pushing to branches
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v3
|
17
|
+
|
18
|
+
- name: Install UV
|
19
|
+
run: pip install uv
|
20
|
+
|
21
|
+
- name: Install dependencies
|
22
|
+
run: ./install
|
23
|
+
shell: bash
|
24
|
+
|
25
|
+
- name: Create index.html
|
26
|
+
run: |
|
27
|
+
uv run build_site.py
|
28
|
+
|
29
|
+
- name: Deploy to GitHub Pages
|
30
|
+
uses: peaceiris/actions-gh-pages@v3
|
31
|
+
with:
|
32
|
+
github_token: ${{ secrets.GITHUB_TOKEN }}
|
33
|
+
publish_dir: ./site
|
34
|
+
force_orphan: true # This creates a new orphan branch each time
|
@@ -0,0 +1,23 @@
|
|
1
|
+
name: Linting
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ${{ matrix.os }}
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
python-version: [3.10.4]
|
11
|
+
os: [ubuntu-24.04]
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v4
|
14
|
+
- name: Set up Python ${{ matrix.python-version }}
|
15
|
+
uses: actions/setup-python@v4
|
16
|
+
with:
|
17
|
+
python-version: ${{ matrix.python-version }}
|
18
|
+
- name: Install dependencies
|
19
|
+
run: |
|
20
|
+
./install
|
21
|
+
- name: Run Linting
|
22
|
+
run: |
|
23
|
+
./lint
|
@@ -0,0 +1,187 @@
|
|
1
|
+
name: Publish Release
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
workflow_dispatch: # on button click
|
8
|
+
|
9
|
+
permissions:
|
10
|
+
contents: write
|
11
|
+
pull-requests: write
|
12
|
+
|
13
|
+
jobs:
|
14
|
+
create-tag:
|
15
|
+
runs-on: ubuntu-24.04
|
16
|
+
permissions:
|
17
|
+
contents: write
|
18
|
+
pull-requests: write
|
19
|
+
outputs:
|
20
|
+
new_version: ${{ steps.current_version.outputs.current }}
|
21
|
+
should_release: ${{ steps.current_version.outputs.current != steps.prev_version.outputs.previous }}
|
22
|
+
steps:
|
23
|
+
- uses: actions/checkout@v4
|
24
|
+
with:
|
25
|
+
fetch-depth: 2 # Need previous commit to compare
|
26
|
+
|
27
|
+
- name: Set up Python
|
28
|
+
uses: actions/setup-python@v5
|
29
|
+
with:
|
30
|
+
python-version: '3.11'
|
31
|
+
|
32
|
+
- name: Install UV
|
33
|
+
run: pip install uv
|
34
|
+
|
35
|
+
- name: Install dependencies
|
36
|
+
run: ./install
|
37
|
+
shell: bash
|
38
|
+
|
39
|
+
- name: Get current version
|
40
|
+
id: current_version
|
41
|
+
run: |
|
42
|
+
uv run fastled --version > current_version.txt
|
43
|
+
echo "current=$(cat current_version.txt)" >> $GITHUB_OUTPUT
|
44
|
+
|
45
|
+
- name: Get previous version
|
46
|
+
id: prev_version
|
47
|
+
run: |
|
48
|
+
git checkout HEAD~1
|
49
|
+
./clean
|
50
|
+
uv run fastled --version > prev_version.txt
|
51
|
+
echo "previous=$(cat prev_version.txt)" >> $GITHUB_OUTPUT
|
52
|
+
shell: bash
|
53
|
+
|
54
|
+
- name: Create Tag if version changed
|
55
|
+
if: steps.current_version.outputs.current != steps.prev_version.outputs.previous
|
56
|
+
env:
|
57
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
58
|
+
run: |
|
59
|
+
git config --local user.email "action@github.com"
|
60
|
+
git config --local user.name "GitHub Action"
|
61
|
+
git tag -a "v${{ steps.current_version.outputs.current }}" -m "Release v${{ steps.current_version.outputs.current }}"
|
62
|
+
git push origin "v${{ steps.current_version.outputs.current }}"
|
63
|
+
|
64
|
+
build-executables:
|
65
|
+
needs: [create-tag]
|
66
|
+
if: needs.create-tag.outputs.should_release == 'true'
|
67
|
+
strategy:
|
68
|
+
matrix:
|
69
|
+
include:
|
70
|
+
- os: ubuntu-24.04
|
71
|
+
platform: linux/amd64
|
72
|
+
# Not available on GitHub Actions unless i run qemu
|
73
|
+
#- os: ubuntu-24.04
|
74
|
+
# platform: ARM64
|
75
|
+
# runs-on: ubuntu-24.04-arm64
|
76
|
+
- os: windows-latest
|
77
|
+
arch: X64
|
78
|
+
- os: macos-latest # arm64
|
79
|
+
arch: ARM64
|
80
|
+
- os: macos-13 # x86
|
81
|
+
arch: X64
|
82
|
+
runs-on: ${{ matrix.runs-on || matrix.os }}
|
83
|
+
|
84
|
+
steps:
|
85
|
+
- uses: actions/checkout@v4
|
86
|
+
|
87
|
+
- uses: actions/setup-python@v5
|
88
|
+
with:
|
89
|
+
python-version: '3.11'
|
90
|
+
|
91
|
+
- name: Install UV
|
92
|
+
run: pip install uv
|
93
|
+
|
94
|
+
- name: Install dependencies
|
95
|
+
run: ./install
|
96
|
+
shell: bash
|
97
|
+
|
98
|
+
- name: Build executable
|
99
|
+
run: uv run build_exe.py
|
100
|
+
|
101
|
+
# Add signing step for Windows
|
102
|
+
- name: Decode and Sign Executable (Windows Only)
|
103
|
+
if: matrix.os == 'windows-latest'
|
104
|
+
run: |
|
105
|
+
echo Decoding PFX file...
|
106
|
+
|
107
|
+
rem Write the secret directly to the file using Python
|
108
|
+
python -c "import os; open('fastled.pfx.b64', 'w').write(r'${{ secrets.FASTLED_PFX_B64 }}')"
|
109
|
+
|
110
|
+
rem Decode the base64 file and write the binary PFX
|
111
|
+
python -c "import base64; open('fastled.pfx', 'wb').write(base64.b64decode(open('fastled.pfx.b64', 'r').read()))"
|
112
|
+
|
113
|
+
dir
|
114
|
+
|
115
|
+
echo Signing executable...
|
116
|
+
"C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" sign /f fastled.pfx /p "${{ secrets.FASTLED_PFX_PASSWORD }}" /fd sha256 ./dist/fastled.exe
|
117
|
+
|
118
|
+
echo Verifying signature...
|
119
|
+
"C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe" verify /pa /v ./dist/fastled.exe || (echo "Ignoring self-signed certificate verification error." && exit 0)
|
120
|
+
shell: cmd
|
121
|
+
|
122
|
+
|
123
|
+
- name: Upload artifact
|
124
|
+
uses: actions/upload-artifact@v3
|
125
|
+
with:
|
126
|
+
name: fastled-${{ runner.os }}-${{ runner.arch }}
|
127
|
+
path: |
|
128
|
+
dist/fastled
|
129
|
+
dist/fastled.exe
|
130
|
+
|
131
|
+
create-release:
|
132
|
+
needs: [create-tag, build-executables]
|
133
|
+
runs-on: ubuntu-24.04
|
134
|
+
permissions:
|
135
|
+
contents: write
|
136
|
+
steps:
|
137
|
+
- name: Download all artifacts
|
138
|
+
uses: actions/download-artifact@v3
|
139
|
+
with:
|
140
|
+
path: artifacts
|
141
|
+
|
142
|
+
- name: Prepare release files
|
143
|
+
shell: bash
|
144
|
+
run: |
|
145
|
+
mkdir release
|
146
|
+
# Create zip files of the artifacts
|
147
|
+
# Create zip files of the artifacts
|
148
|
+
[ -f artifacts/fastled-Windows-X64/fastled.exe ] && zip -j release/fastled-windows-x64.zip artifacts/fastled-Windows-X64/fastled.exe
|
149
|
+
[ -f artifacts/fastled-Linux-X64/fastled ] && chmod +x artifacts/fastled-Linux-X64/fastled && zip -j release/fastled-linux-x64.zip artifacts/fastled-Linux-X64/fastled
|
150
|
+
[ -f artifacts/fastled-Linux-ARM64/fastled ] && chmod +x artifacts/fastled-Linux-ARM64/fastled && zip -j release/fastled-linux-arm64.zip artifacts/fastled-Linux-ARM64/fastled
|
151
|
+
[ -f artifacts/fastled-macOS-ARM64/fastled ] && chmod +x artifacts/fastled-macOS-ARM64/fastled && zip -j release/fastled-macos-arm64.zip artifacts/fastled-macOS-ARM64/fastled
|
152
|
+
[ -f artifacts/fastled-macOS-X64/fastled ] && chmod +x artifacts/fastled-macOS-X64/fastled && zip -j release/fastled-macos-x64.zip artifacts/fastled-macOS-X64/fastled
|
153
|
+
|
154
|
+
find release -type f -name 'fastled*' -exec chmod +x {} \;
|
155
|
+
|
156
|
+
|
157
|
+
- name: Create Release
|
158
|
+
uses: softprops/action-gh-release@v1
|
159
|
+
with:
|
160
|
+
tag_name: v${{ needs.create-tag.outputs.new_version }}
|
161
|
+
files: release/*.zip
|
162
|
+
draft: false
|
163
|
+
prerelease: false
|
164
|
+
|
165
|
+
publish-pypi:
|
166
|
+
needs: [create-tag]
|
167
|
+
if: needs.create-tag.outputs.should_release == 'true'
|
168
|
+
runs-on: ubuntu-24.04
|
169
|
+
steps:
|
170
|
+
- uses: actions/checkout@v4
|
171
|
+
|
172
|
+
- name: Set up Python
|
173
|
+
uses: actions/setup-python@v5
|
174
|
+
with:
|
175
|
+
python-version: '3.11'
|
176
|
+
|
177
|
+
- name: Install dependencies for PyPI publishing
|
178
|
+
run: |
|
179
|
+
pip install build twine
|
180
|
+
|
181
|
+
- name: Build and Publish to PyPI
|
182
|
+
env:
|
183
|
+
TWINE_USERNAME: "__token__"
|
184
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
185
|
+
run: |
|
186
|
+
python -m build
|
187
|
+
python -m twine upload dist/*
|
@@ -0,0 +1,54 @@
|
|
1
|
+
name: Test Build Executables
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ${{ matrix.os }}
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
os: [
|
11
|
+
ubuntu-24.04, # linux/amd64
|
12
|
+
windows-latest, # x64
|
13
|
+
macos-latest, # arm64
|
14
|
+
macos-13 # x86
|
15
|
+
]
|
16
|
+
python-version: [3.11]
|
17
|
+
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v4
|
20
|
+
|
21
|
+
- uses: actions/setup-python@v5
|
22
|
+
with:
|
23
|
+
python-version: ${{ matrix.python-version }}
|
24
|
+
|
25
|
+
- name: Install UV
|
26
|
+
run: pip install uv
|
27
|
+
|
28
|
+
- name: Install dependencies
|
29
|
+
run: ./install
|
30
|
+
shell: bash
|
31
|
+
|
32
|
+
- name: Build executable
|
33
|
+
run: uv run build_exe.py
|
34
|
+
|
35
|
+
- name: Test executable
|
36
|
+
shell: bash
|
37
|
+
run: |
|
38
|
+
if [ "${{ matrix.os }}" = "windows-latest" ]; then
|
39
|
+
./dist/fastled.exe --version
|
40
|
+
else
|
41
|
+
./dist/fastled --version
|
42
|
+
fi
|
43
|
+
|
44
|
+
if [ "${{ matrix.os }}" = "ubuntu-24.04" ]; then
|
45
|
+
./dist/fastled --init wasm && ./dist/fastled --just-compile --local fastled/wasm
|
46
|
+
fi
|
47
|
+
|
48
|
+
- name: Upload artifacts
|
49
|
+
uses: actions/upload-artifact@v3
|
50
|
+
with:
|
51
|
+
name: fastled-${{ matrix.os }}
|
52
|
+
path: |
|
53
|
+
dist/fastled
|
54
|
+
dist/fastled.exe
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: MacOS_Tests
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: macos-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
python-version: [3.11]
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v4
|
14
|
+
|
15
|
+
- uses: actions/setup-python@v5
|
16
|
+
with:
|
17
|
+
python-version: ${{ matrix.python-version }}
|
18
|
+
|
19
|
+
- name: Install UV
|
20
|
+
run: pip install uv
|
21
|
+
|
22
|
+
- name: Install
|
23
|
+
run: ./install
|
24
|
+
|
25
|
+
- name: Unit tests
|
26
|
+
run: ./test
|
27
|
+
|
28
|
+
- name: live run
|
29
|
+
run: pip install . && cd tests/test_ino/wasm && sudo rm -rf fastled_js && time fastled-wasm --just-compile && find fastled_js | sort
|
@@ -0,0 +1,29 @@
|
|
1
|
+
name: Ubuntu_Tests
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-24.04
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
python-version: [3.11]
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v4
|
14
|
+
|
15
|
+
- uses: actions/setup-python@v5
|
16
|
+
with:
|
17
|
+
python-version: ${{ matrix.python-version }}
|
18
|
+
|
19
|
+
- name: Install UV
|
20
|
+
run: pip install uv
|
21
|
+
|
22
|
+
- name: Install
|
23
|
+
run: ./install
|
24
|
+
|
25
|
+
- name: Unit tests
|
26
|
+
run: ./test
|
27
|
+
|
28
|
+
- name: live run
|
29
|
+
run: pip install . && cd tests/test_ino/wasm && sudo rm -rf fastled_js && time fastled-wasm --just-compile && find fastled_js | sort
|
@@ -0,0 +1,32 @@
|
|
1
|
+
name: Win_Tests
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: windows-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
python-version: [3.11]
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v4
|
14
|
+
|
15
|
+
- uses: actions/setup-python@v5
|
16
|
+
with:
|
17
|
+
python-version: ${{ matrix.python-version }}
|
18
|
+
|
19
|
+
- name: Install UV
|
20
|
+
run: pip install uv
|
21
|
+
|
22
|
+
- name: Install
|
23
|
+
run: ./install
|
24
|
+
shell: bash -l {0}
|
25
|
+
|
26
|
+
- name: Unit tests
|
27
|
+
run: ./test
|
28
|
+
shell: bash -l {0}
|
29
|
+
|
30
|
+
- name: live run
|
31
|
+
run: pip install . && cd tests/test_ino/wasm && rm -rf fastled_js && time fastled-wasm --web --just-compile && find fastled_js | sort
|
32
|
+
shell: bash -l {0}
|
@@ -0,0 +1,152 @@
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
2
|
+
__pycache__/
|
3
|
+
*.py[cod]
|
4
|
+
*$py.class
|
5
|
+
*.pyc
|
6
|
+
|
7
|
+
# Generated commands
|
8
|
+
/zcmds/bin/
|
9
|
+
|
10
|
+
# C extensions
|
11
|
+
*.so
|
12
|
+
|
13
|
+
# Distribution / packaging
|
14
|
+
.Python
|
15
|
+
prod_env/
|
16
|
+
data/
|
17
|
+
!tests/test_ino/embedded/data
|
18
|
+
build/
|
19
|
+
develop-eggs/
|
20
|
+
dist/
|
21
|
+
downloads/
|
22
|
+
eggs/
|
23
|
+
.eggs/
|
24
|
+
lib/
|
25
|
+
lib64/
|
26
|
+
parts/
|
27
|
+
sdist/
|
28
|
+
var/
|
29
|
+
wheels/
|
30
|
+
pip-wheel-metadata/
|
31
|
+
share/python-wheels/
|
32
|
+
*.egg-info/
|
33
|
+
.installed.cfg
|
34
|
+
*.egg
|
35
|
+
MANIFEST
|
36
|
+
|
37
|
+
# PyInstaller
|
38
|
+
# Usually these files are written by a python script from a template
|
39
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
40
|
+
*.manifest
|
41
|
+
*.spec
|
42
|
+
|
43
|
+
# Installer logs
|
44
|
+
pip-log.txt
|
45
|
+
pip-delete-this-directory.txt
|
46
|
+
|
47
|
+
# Unit test / coverage reports
|
48
|
+
htmlcov/
|
49
|
+
.tox/
|
50
|
+
.nox/
|
51
|
+
.coverage
|
52
|
+
.coverage.*
|
53
|
+
.cache
|
54
|
+
nosetests.xml
|
55
|
+
coverage.xml
|
56
|
+
*.cover
|
57
|
+
*.py,cover
|
58
|
+
.hypothesis/
|
59
|
+
.pytest_cache/
|
60
|
+
|
61
|
+
# Translations
|
62
|
+
*.mo
|
63
|
+
*.pot
|
64
|
+
|
65
|
+
# Django stuff:
|
66
|
+
*.log
|
67
|
+
local_settings.py
|
68
|
+
db.sqlite3
|
69
|
+
db.sqlite3-journal
|
70
|
+
|
71
|
+
# Flask stuff:
|
72
|
+
instance/
|
73
|
+
.webassets-cache
|
74
|
+
|
75
|
+
# Scrapy stuff:
|
76
|
+
.scrapy
|
77
|
+
|
78
|
+
# Sphinx documentation
|
79
|
+
docs/_build/
|
80
|
+
|
81
|
+
# PyBuilder
|
82
|
+
target/
|
83
|
+
|
84
|
+
# Jupyter Notebook
|
85
|
+
.ipynb_checkpoints
|
86
|
+
|
87
|
+
# IPython
|
88
|
+
profile_default/
|
89
|
+
ipython_config.py
|
90
|
+
|
91
|
+
# pyenv
|
92
|
+
.python-version
|
93
|
+
|
94
|
+
# pipenv
|
95
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
96
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
97
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
98
|
+
# install all needed dependencies.
|
99
|
+
#Pipfile.lock
|
100
|
+
|
101
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
102
|
+
__pypackages__/
|
103
|
+
|
104
|
+
# Celery stuff
|
105
|
+
celerybeat-schedule
|
106
|
+
celerybeat.pid
|
107
|
+
|
108
|
+
# SageMath parsed files
|
109
|
+
*.sage.py
|
110
|
+
|
111
|
+
# Environments
|
112
|
+
.env
|
113
|
+
.venv
|
114
|
+
env/
|
115
|
+
venv/
|
116
|
+
ENV/
|
117
|
+
env.bak/
|
118
|
+
venv.bak/
|
119
|
+
|
120
|
+
# Spyder project settings
|
121
|
+
.spyderproject
|
122
|
+
.spyproject
|
123
|
+
|
124
|
+
# Rope project settings
|
125
|
+
.ropeproject
|
126
|
+
|
127
|
+
# mkdocs documentation
|
128
|
+
/site
|
129
|
+
|
130
|
+
# mypy
|
131
|
+
.mypy_cache/
|
132
|
+
.dmypy.json
|
133
|
+
dmypy.json
|
134
|
+
|
135
|
+
# Pyre type checker
|
136
|
+
.pyre/
|
137
|
+
.activate.sh
|
138
|
+
activate
|
139
|
+
|
140
|
+
# Generated by mac
|
141
|
+
**/.DS_Store
|
142
|
+
uv.lock
|
143
|
+
fastled_js
|
144
|
+
.aider*
|
145
|
+
!.aider.conf.yml
|
146
|
+
!.aiderignorerun.py
|
147
|
+
run.sh
|
148
|
+
!.aiderignore
|
149
|
+
tmp/
|
150
|
+
cache/
|
151
|
+
dist/
|
152
|
+
/fastled/
|
fastled-1.2.23/.pylintrc
ADDED
@@ -0,0 +1,2 @@
|
|
1
|
+
[MESSAGES CONTROL]
|
2
|
+
disable=missing-module-docstring,missing-class-docstring,missing-function-docstring,line-too-long,raise-missing-from,too-few-public-methods,too-many-return-statements,fixme,too-many-locals,too-many-branches,too-many-statements,too-many-arguments,too-many-instance-attributes,too-many-ancestors,too-many-lines,too-many-public-methods,too-many-boolean-expressions,too-many-locals,too-many-branches,too-many-statements,too-many-arguments,too-many-instance-attributes,too-many-ancestors,too-many-lines,too-many-public-methods,too-many-boolean-expressions,R0801
|