Skip to content

Commit

Permalink
YaSolR
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieucarbou committed Feb 1, 2024
0 parents commit 8866606
Show file tree
Hide file tree
Showing 146 changed files with 14,902 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Language: Cpp
BasedOnStyle: LLVM

AccessModifierOffset: -2
AllowShortIfStatementsOnASingleLine: false
ColumnLimit: 0
ContinuationIndentWidth: 2
FixNamespaceComments: false
IndentAccessModifiers: true
IndentCaseLabels: true
IndentWidth: 2
NamespaceIndentation: All
PointerAlignment: Left
ReferenceAlignment: Left
TabWidth: 2
UseTab: Never
13 changes: 13 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# These are supported funding model platforms

github: mathieucarbou
# patreon: # Replace with a single Patreon username
# open_collective: # Replace with a single Open Collective username
# ko_fi: # Replace with a single Ko-fi username
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
# liberapay: # Replace with a single Liberapay username
# issuehunt: # Replace with a single IssueHunt username
# otechie: # Replace with a single Otechie username
# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: https://paypal.me/mathieucarboufr
20 changes: 20 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "gitsubmodule"
directory: "/"
schedule:
interval: "daily"
reviewers:
- "mathieucarbou"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
reviewers:
- "mathieucarbou"
158 changes: 158 additions & 0 deletions .github/workflows/build-oss.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json

name: Build Open-Source Firmware

on:
workflow_dispatch:
schedule:
- cron: "0 5 * * 1"
push:
tags: ["v*"]
branches: ["*"]
paths-ignore: ["docs/**", "**/*.md", "site/**", "**/portal/**", "tools/**", "test/**"]
pull_request:
paths-ignore: ["docs/**", "**/*.md", "site/**", "**/portal/**", "tools/**", "test/**"]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
pio_envs:
if: ${{ github.repository != 'mathieucarbou/YaSolR' }}
name: Get PlatformIO Envs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Cache
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pio_envs
path: ~/.cache/pip

- name: Pyhton
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: PlatformIO
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
- name: Get Envs
id: envs
run: |
rm -f platformio_override.ini
echo "pio_name=$(pio project config --json-output | jq -cr '.[0][1][0][1]')" >> $GITHUB_OUTPUT
echo "pio_default_envs=$(pio project config --json-output | jq -cr '[ .[][0] | select(startswith("env:oss-")) | .[4:] ]')" >> $GITHUB_OUTPUT
outputs:
pio_name: ${{ steps.envs.outputs.pio_name }}
pio_default_envs: ${{ steps.envs.outputs.pio_default_envs }}

YaSolR:
name: YaSolR
runs-on: ubuntu-latest
needs: [pio_envs]
strategy:
matrix:
environment: ${{ fromJSON(needs.pio_envs.outputs.pio_default_envs) }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get Tags
run: git fetch --force --tags origin

- name: Cache PlatformIO
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pio
path: |
~/.cache/pip
~/.platformio
- name: Cache YaSolR
uses: actions/cache@v4
with:
key: ${{ runner.os }}-YaSolR
path: .pio/libdeps

- name: Python
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: Build
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
pio run -e ${{ matrix.environment }}
ref="${{ github.ref_name }}"
ref="${ref//\//_}"
mv .pio/build/${{ matrix.environment }}/firmware.bin ./${{ needs.pio_envs.outputs.pio_name }}-$ref-${{ matrix.environment }}.bin
mv .pio/build/${{ matrix.environment }}/firmware.factory.bin ./${{ needs.pio_envs.outputs.pio_name }}-$ref-${{ matrix.environment }}.factory.bin
- name: Upload
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.environment }}
if-no-files-found: error
path: |
*.bin
release:
name: Release
if: ${{ github.repository_owner == 'mathieucarbou' && github.event_name != 'pull_request' && ( github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') ) }}
runs-on: ubuntu-latest
needs: [YaSolR]
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download
uses: actions/download-artifact@v4
with:
path: artifacts/

- name: Move
run: |
ls -R artifacts
find artifacts -name '*.bin' -exec mv {} artifacts/ \;
- name: Pre-Release
if: ${{ github.ref == 'refs/heads/main' }}
uses: mathieucarbou/marvinpinto-action-automatic-releases@latest
with:
repo_token: "${{ secrets.ACCESS_TOKEN }}"
automatic_release_tag: latest
prerelease: true
title: Pre-release Builds
files: |
artifacts/*.bin
- name: Changelog
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
id: github_release
uses: mikepenz/release-changelog-builder-action@v4
with:
failOnError: true
commitMode: true
configuration: ".github/workflows/release-notes-config.json"
env:
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}

- name: Release
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
uses: softprops/action-gh-release@v1
with:
body: ${{steps.github_release.outputs.changelog}}
draft: false
files: artifacts/*.bin
env:
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
45 changes: 45 additions & 0 deletions .github/workflows/cpplint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json

name: Cpplint

on:
workflow_dispatch:
push:
paths: ["**/*.h", "**/*.cpp"]
pull_request:
paths: ["**/*.h", "**/*.cpp"]

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

- name: Cache
uses: actions/cache@v4
with:
key: ${{ runner.os }}-cpplint
path: ~/.cache/pip

- name: Pyhton
uses: actions/setup-python@v5
with:
python-version: "3.x"

- name: cpplint
run: |
python -m pip install --upgrade pip
pip install --upgrade cpplint
cpplint \
--repository=. \
--recursive \
--filter=-whitespace/line_length,-whitespace/braces,-whitespace/comments,-runtime/indentation_namespace,-whitespace/indent,-readability/braces,-whitespace/newline,-readability/todo,-build/c++11 \
--exclude=lib/ElegantOTAPro \
--exclude=lib/ESPDASH \
--exclude=lib/ESPDASHPro \
--exclude=lib/WebSerialLite \
lib \
include \
src
20 changes: 20 additions & 0 deletions .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: PlatformIO Dependabot

on:
workflow_dispatch:
schedule:
# Runs every day at 01:00
- cron: "0 1 * * *"

jobs:
dependabot:
runs-on: ubuntu-latest
name: PlatformIO Dependabot
steps:
- name: Checkout
uses: actions/checkout@v4
- name: run PlatformIO Dependabot
uses: peterus/platformio_dependabot@v1
with:
assignee: mathieucarbou
github_token: ${{ secrets.GITHUB_TOKEN }}
50 changes: 50 additions & 0 deletions .github/workflows/release-notes-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
{
"categories": [
{
"title": "## ⚡ Breaking Changes",
"labels": [
"breaking change"
]
},
{
"title": "## 🚀 Features",
"labels": [
"feature"
]
},
{
"title": "## 🐛 Fixes",
"labels": [
"fix"
]
},
{
"title": "## 📚 Documentation",
"labels": [
"doc"
]
},
{
"title": "## 🛠 Under the hood",
"labels": []
}
],
"template": "${{CHANGELOG}}",
"pr_template": "- [${{TITLE}}](https://github.com/mathieucarbou/${{REPO}}/commit/${{MERGE_SHA}})",
"empty_template": "- no changes",
"label_extractor": [
{
"pattern": "(.): (.+)",
"target": "$1",
"on_property": "title"
},
{
"pattern": "(.) (.+)",
"target": "$1",
"on_property": "title"
}
],
"tag_resolver": {
"method": "semver"
}
}
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DS_Store
.lh
/.pio
/.vscode/*
!/.vscode/settings.json
/logs
/platformio_override.ini
/platformio_override.ini
/platformio-device-monitor*.log
/site/_site
/site/.jekyll-cache
/site/.sass-cache
/data/*.gz
10 changes: 10 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: LLVM, UseTab: Never, IndentWidth: 2, TabWidth: 2, AllowShortIfStatementsOnASingleLine: false, IndentCaseLabels: true, ColumnLimit: 0, AccessModifierOffset: -2, NamespaceIndentation: All, FixNamespaceComments: false, IndentAccessModifiers: true, PointerAlignment: Left, ReferenceAlignment: Left, ContinuationIndentWidth: 2}",
"files.exclude": {
"**/.lh": true
},
"cSpell.words": [
"YASOLR"
],
"scm.defaultViewMode": "tree"
}
Loading

0 comments on commit 8866606

Please sign in to comment.