Skip to content

Commit ad2f93d

Browse files
authored
Merge branch 'dev' into FEAT_AddAudioReceiverDependencies
2 parents ee1150a + bf23fc1 commit ad2f93d

60 files changed

Lines changed: 688 additions & 1655 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/license_tests.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,3 @@ on:
66
jobs:
77
license_tests:
88
uses: neongeckocom/.github/.github/workflows/license_tests.yml@master
9-
with:
10-
packages-exclude: '^(precise-runner|fann2|tqdm|bs4|ovos-phal-plugin|ovos-skill|neon-core|nvidia|neon-phal-plugin|bitstruct|audioread).*'

.github/workflows/publish_release.yml

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,6 @@ jobs:
1919
with:
2020
token: ${{secrets.GITHUB_TOKEN}}
2121
tag: ${{env.VERSION}}
22-
trigger_os_build:
23-
runs-on: ubuntu-latest
24-
steps:
25-
- name: Call Release Action
26-
uses: peter-evans/repository-dispatch@v3
27-
with:
28-
token: ${{secrets.NEON_OS_TOKEN}}
29-
repository: neongeckocom/neon-os
30-
event-type: Publish Release
31-
client-payload: |-
32-
{
33-
"ref": "master",
34-
"repo": "neon-core"
35-
}
3622
build_and_publish_docker:
3723
uses: neongeckocom/.github/.github/workflows/publish_docker.yml@master
3824
secrets: inherit

.github/workflows/setup_tests.yml

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,17 @@ jobs:
99
core_and_skills:
1010
strategy:
1111
matrix:
12-
python-version: [ 3.8, 3.9, '3.10', '3.11' ]
12+
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
1313
runs-on: ubuntu-latest
1414
timeout-minutes: 15
1515
steps:
16-
- uses: actions/checkout@v2
16+
- name: Checkout neon-core
17+
uses: actions/checkout@v4
1718
- name: Setup Python ${{ matrix.python-version }}
18-
uses: actions/setup-python@v1
19+
uses: actions/setup-python@v5
1920
with:
2021
python-version: ${{ matrix.python-version }}
22+
cache: pip
2123
- name: Install System Dependencies
2224
run: |
2325
sudo apt update
@@ -33,12 +35,29 @@ jobs:
3335
runs-on: ubuntu-latest
3436
timeout-minutes: 90
3537
steps:
36-
- uses: actions/checkout@v2
38+
- name: Checkout neon-core
39+
uses: actions/checkout@v4
40+
- name: Restore base image cache
41+
uses: actions/cache@v3
42+
id: image-cache
43+
with:
44+
path: ${{ github.workspace }}/pi_image_3.img.xz
45+
key: ${{ runner.os }}-pi_image_3.img.xz-v1
46+
- name: Ensure base image files are pulled
47+
if: steps.image-cache.outputs.cache-hit != 'true'
48+
run: wget https://download.neonaiservices.com/test_images/pi_image_3.img.xz -O ${{ github.workspace }}/pi_image_3.img.xz
49+
- name: Save base image Cache
50+
if: steps.image-cache.outputs.cache-hit != 'true'
51+
id: image-cache-save
52+
uses: actions/cache/save@v3
53+
with:
54+
path: ${{ github.workspace }}/pi_image_3.img.xz
55+
key: ${{ runner.os }}-pi_image_3.img.xz-v1
3756
- name: Test chroot installation
3857
uses: pguyot/arm-runner-action@v2
3958
with:
4059
optimize_image: false
41-
base_image: https://2222.us/app/files/neon_images/test_images/pi_image_3.img.xz
60+
base_image: file://${{ github.workspace }}/pi_image_3.img.xz
4261
cpu: cortex-a53
4362
copy_repository_path: /core
4463
commands: |
@@ -50,12 +69,29 @@ jobs:
5069
runs-on: ubuntu-latest
5170
timeout-minutes: 90
5271
steps:
53-
- uses: actions/checkout@v2
72+
- name: Checkout neon-core
73+
uses: actions/checkout@v4
74+
- name: Restore base image cache
75+
uses: actions/cache@v3
76+
id: image-cache
77+
with:
78+
path: ${{ github.workspace }}/pi_image_3.img.xz
79+
key: ${{ runner.os }}-pi_image_3.img.xz-v1
80+
- name: Ensure base image is pulled
81+
if: steps.image-cache.outputs.cache-hit != 'true'
82+
run: wget https://download.neonaiservices.com/test_images/pi_image_3.img.xz -O ${{ github.workspace }}/pi_image_3.img.xz
83+
- name: Save base image Cache
84+
if: steps.image-cache.outputs.cache-hit != 'true'
85+
id: image-cache-save
86+
uses: actions/cache/save@v3
87+
with:
88+
path: ${{ github.workspace }}/pi_image_3.img.xz
89+
key: ${{ runner.os }}-pi_image_3.img.xz-v1
5490
- name: Test chroot installation
5591
uses: pguyot/arm-runner-action@v2
5692
with:
5793
optimize_image: false
58-
base_image: https://2222.us/app/files/neon_images/test_images/pi_image_3.img.xz
94+
base_image: file://${{ github.workspace }}/pi_image_3.img.xz
5995
cpu: cortex-a53
6096
copy_repository_path: /core
6197
commands: |

.github/workflows/unit_tests.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ jobs:
1717
util_tests:
1818
strategy:
1919
matrix:
20-
python-version: [ 3.7, 3.8, 3.9, '3.10', '3.11' ]
20+
python-version: [ 3.9, '3.10', '3.11', '3.12' ]
2121
runs-on: ubuntu-latest
2222
timeout-minutes: 15
2323
steps:
24-
- uses: actions/checkout@v2
24+
- uses: actions/checkout@v4
2525
- name: Set up python ${{ matrix.python-version }}
26-
uses: actions/setup-python@v2
26+
uses: actions/setup-python@v5
2727
with:
2828
python-version: ${{ matrix.python-version }}
2929
- name: Install Dependencies
@@ -41,9 +41,9 @@ jobs:
4141
env:
4242
GITHUB_TOKEN: ${{secrets.neon_token}}
4343
- name: Upload Skill Utils test results
44-
uses: actions/upload-artifact@v2
44+
uses: actions/upload-artifact@v4
4545
with:
46-
name: skill-utils-test-results
46+
name: skill-utils-test-results-${{ matrix.python-version }}
4747
path: tests/skill-utils-test-results.xml
4848

4949
- name: Test Diagnostic Utils
@@ -52,21 +52,21 @@ jobs:
5252
env:
5353
GITHUB_TOKEN: ${{secrets.neon_token}}
5454
- name: Upload Diagnostic Utils test results
55-
uses: actions/upload-artifact@v2
55+
uses: actions/upload-artifact@v4
5656
with:
57-
name: diagnostic-utils-test-results
57+
name: diagnostic-utils-test-results-${{ matrix.python-version }}
5858
path: tests/diagnostic-utils-test-results.xml
5959

6060
unit_tests:
6161
strategy:
6262
matrix:
63-
python-version: [ 3.7, 3.8, 3.9, '3.10', '3.11' ]
63+
python-version: [ 3.9, '3.10', '3.11', '3.12' ]
6464
runs-on: ubuntu-latest
6565
timeout-minutes: 15
6666
steps:
67-
- uses: actions/checkout@v2
67+
- uses: actions/checkout@v4
6868
- name: Set up python ${{ matrix.python-version }}
69-
uses: actions/setup-python@v2
69+
uses: actions/setup-python@v5
7070
with:
7171
python-version: ${{ matrix.python-version }}
7272
- name: Install Dependencies
@@ -82,25 +82,25 @@ jobs:
8282
run: |
8383
pytest test/test_configuration.py --doctest-modules --junitxml=tests/configuration-test-results.xml
8484
- name: Upload Configuration test results
85-
uses: actions/upload-artifact@v2
85+
uses: actions/upload-artifact@v4
8686
with:
87-
name: configuration-test-results
87+
name: configuration-test-results-${{ matrix.python-version }}
8888
path: tests/configuration-test-results.xml
8989

9090
- name: Test Language
9191
run: |
9292
pytest test/test_language.py --doctest-modules --junitxml=tests/language-test-results.xml
9393
- name: Upload Language test results
94-
uses: actions/upload-artifact@v2
94+
uses: actions/upload-artifact@v4
9595
with:
96-
name: language-test-results
96+
name: language-test-results-${{ matrix.python-version }}
9797
path: tests/language-test-results.xml
9898

9999
- name: Test Skills Module
100100
run: |
101101
pytest test/test_skills_module.py --doctest-modules --junitxml=tests/skills-module-test-results.xml
102102
- name: Upload Language test results
103-
uses: actions/upload-artifact@v2
103+
uses: actions/upload-artifact@v4
104104
with:
105-
name: skills-module-test-results
105+
name: skills-module-test-results-${{ matrix.python-version }}
106106
path: tests/skills-module-test-results.xml

.github/workflows/update_skills_image.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44

55
jobs:
66
build_and_publish_docker:
7-
needs: build_and_publish_pypi
87
uses: neongeckocom/.github/.github/workflows/publish_docker.yml@master
98
secrets: inherit
109
with:

Dockerfile

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
FROM python:3.10-slim as base
1+
FROM python:3.10-slim AS base
22

33
LABEL vendor=neon.ai \
44
ai.neon.name="neon-skills"
55

6-
ENV OVOS_CONFIG_BASE_FOLDER neon
7-
ENV OVOS_CONFIG_FILENAME neon.yaml
8-
ENV XDG_CONFIG_HOME /config
6+
ENV OVOS_CONFIG_BASE_FOLDER=neon
7+
ENV OVOS_CONFIG_FILENAME=neon.yaml
8+
ENV XDG_CONFIG_HOME=/config
99

1010
RUN apt-get update && \
1111
apt-get install -y \
@@ -21,6 +21,8 @@ RUN curl https://forslund.github.io/mycroft-desktop-repo/mycroft-desktop.gpg.ke
2121

2222
RUN apt-get update && \
2323
apt-get install -y \
24+
curl \
25+
jq \
2426
gcc \
2527
g++ \
2628
python3-dev \
@@ -41,18 +43,19 @@ RUN apt-get update && \
4143
# TODO: git required for getting scripts, skill should be refactored to remove this dependency
4244
# TODO: sox, mimic required for demo skill, audio service should be refactored to handle TTS engines/voices in request
4345

44-
ADD . /neon_core
46+
COPY . /neon_core
4547
WORKDIR /neon_core
4648

47-
RUN pip install wheel && \
48-
pip install .[docker]
49+
RUN pip install --no-cache-dir wheel && \
50+
pip install --no-cache-dir .[docker]
4951

5052
COPY docker_overlay/ /
5153
RUN chmod ugo+x /root/run.sh && \
5254
neon update-default-resources
5355

56+
HEALTHCHECK CMD "/opt/neon/healthcheck.sh"
5457
CMD ["/root/run.sh"]
5558

56-
FROM base as default_skills
57-
RUN pip install .[skills_required,skills_essential,skills_default,skills_extended]
59+
FROM base AS default_skills
60+
RUN pip install --no-cache-dir .[skills_required,skills_essential,skills_default,skills_extended]
5861
# Default skills from configuration are installed at container creation

LICENSE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# NEON AI (TM) SOFTWARE, Software Development Kit & Application Development System
22
# All trademark and other rights reserved by their respective owners
3-
# Copyright 2008-2021 Neongecko.com Inc.
3+
# Copyright 2008-2025 Neongecko.com Inc.
44
# BSD-3 License
55

66
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the

docker_overlay/etc/neon/neon.yaml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@ skills:
88
- /default_skills
99
- /skills
1010
upload_skill_manifest: false
11-
blacklisted_skills: []
11+
blacklisted_skills:
12+
- skill-recipes.neongeckocom
1213
priority_skills: []
1314
fallbacks:
1415
fallback_priorities: {}
@@ -41,4 +42,7 @@ play_wav_cmdline: "play %1"
4142
play_mp3_cmdline: "play %1"
4243
play_ogg_cmdline: "play %1"
4344
ready_settings:
44-
- skills
45+
- skills
46+
signal:
47+
use_signal_files: false
48+
patch_imports: false
Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
# NEON AI (TM) SOFTWARE, Software Development Kit & Application Framework
1+
#!/bin/bash
2+
# NEON AI (TM) SOFTWARE, Software Development Kit & Application Development System
23
# All trademark and other rights reserved by their respective owners
3-
# Copyright 2008-2022 Neongecko.com Inc.
4-
# Contributors: Daniel McKnight, Guy Daniels, Elon Gasper, Richard Leeds,
5-
# Regina Bloomstine, Casimiro Ferreira, Andrii Pernatii, Kirill Hrymailo
6-
# BSD-3 License
4+
# Copyright 2008-2025 Neongecko.com Inc.
5+
# BSD-3
76
# Redistribution and use in source and binary forms, with or without
87
# modification, are permitted provided that the following conditions are met:
98
# 1. Redistributions of source code must retain the above copyright notice,
@@ -26,23 +25,13 @@
2625
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
2726
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2827

29-
from ovos_utils.log import LOG
30-
# TODO: Deprecate with ovos-backend-client update
31-
try:
32-
import ovos_workshop.settings
33-
from ovos_workshop.settings import SkillSettingsManager as _SM
34-
from ovos_backend_client.api import DeviceApi
35-
from mock import Mock
36-
37-
class SkillSettingsManager(_SM):
38-
def __init__(self, skill):
39-
self.download_timer = None
40-
self.skill = skill
41-
self.api = DeviceApi()
42-
self.remote_settings = Mock()
43-
self.register_bus_handlers()
44-
45-
LOG.info("Patching SkillSettingsManager")
46-
ovos_workshop.settings.SkillSettingsManager = SkillSettingsManager
47-
except ImportError:
48-
pass
28+
port=8000
29+
# Perform the health check using curl
30+
resp_content=$(curl -s http://localhost:${port}/status)
31+
status=$(echo "${resp_content}" | jq -r '.status')
32+
if [ "${status}" == "Ready" ]; then
33+
exit 0 # Success
34+
else
35+
echo "Health check failed with response: ${resp_content}" >&2
36+
exit 1 # Failure
37+
fi

docker_overlay/root/run.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
# NEON AI (TM) SOFTWARE, Software Development Kit & Application Framework
33
# All trademark and other rights reserved by their respective owners
4-
# Copyright 2008-2022 Neongecko.com Inc.
4+
# Copyright 2008-2025 Neongecko.com Inc.
55
# Contributors: Daniel McKnight, Guy Daniels, Elon Gasper, Richard Leeds,
66
# Regina Bloomstine, Casimiro Ferreira, Andrii Pernatii, Kirill Hrymailo
77
# BSD-3 License
@@ -29,5 +29,4 @@
2929

3030
# Python package installation must occur in a separate thread, before module load, for the entry point to be loaded.
3131
neon install-default-skills
32-
#neon install-skill-requirements /skills
33-
neon run-skills
32+
neon run-skills -hp 8000

0 commit comments

Comments
 (0)