Skip to content

Commit

Permalink
chore(stacker): create project (#450)
Browse files Browse the repository at this point in the history
Project skeleton for the FLEX stacker
  • Loading branch information
ahiuchingau authored Jul 22, 2024
1 parent b703389 commit 94a1246
Show file tree
Hide file tree
Showing 30 changed files with 4,342 additions and 8 deletions.
97 changes: 97 additions & 0 deletions .github/workflows/flex-stacker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: 'Flex Stacker build/test'
on:
pull_request:
paths:
- 'stm32-modules/flex-stacker/**/*'
- 'stm32-modules/common/**/*'
- 'stm32-modules/include/common/**/*'
- 'stm32-modules/include/flex-stacker/**/*'
- 'cmake/**/*'
- 'CMakeLists.txt'
- 'stm32-modules/CMakeLists.txt'
- 'CMakePresets.json'
- '.clang-format'
- '.clang-tidy'
- 'cpp-utils/**/*'
paths_ignore:
- 'cmake/Arduino*'
push:
paths:
- 'stm32-modules/flex-stacker/**/*'
- 'stm32-modules/common/**/*'
- 'stm32-modules/include/common/**/*'
- 'stm32-modules/include/flex-stacker/**/*'
- 'cmake/**/*'
- 'CMakeLists.txt'
- 'stm32-modules/CMakeLists.txt'
- 'CMakePresets.json'
- '.clang-format'
- '.clang-tidy'
- '.github/workflows/flex-stacker.yaml'
paths_ignore:
- 'cmake/Arduino*'
branches:
- '*'
tags:
- 'flex-stacker@*'
workflow_dispatch:


defaults:
run:
shell: bash


jobs:
cross-compile-check:
name: 'Cross-Compile/Check'
runs-on: 'ubuntu-20.04'
timeout-minutes: 10
steps:
- uses: 'actions/checkout@v2'
with:
fetch-depth: 0
- uses: 'actions/cache@v2'
with:
key: stm32-cross-${{ secrets.MODULES_STM32_CACHE_VERSION }}-${{ hashFiles('cmake/*') }}
restore-keys: stm32-cross-${{ secrets.MODULES_STM32_CACHE_VERSION }}-
path: './stm32-tools'
- name: 'Configure'
run: cmake --preset=stm32-cross .
- name: 'Format'
run: cmake --build --preset cross --target flex-stacker-format-ci
- name: 'Lint'
run: cmake --build --preset cross --target flex-stacker-lint
- name: 'Build startup app'
run: cmake --build --preset cross --target flex-stacker-startup
- name: 'Build'
run: cmake --build --preset cross --target flex-stacker-hex
- name: 'Build full image'
run: cmake --build --preset cross --target flex-stacker-image-hex
- name: 'Build full image binary'
run: cmake --build --preset cross --target flex-stacker-image-bin
host-compile-test:
name: 'Host-Compile/Test'
runs-on: 'ubuntu-20.04'
timeout-minutes: 10
env:
CC: gcc-10
CXX: g++-10
steps:
- run: |
sudo apt update
sudo apt install gcc-10 g++-10
- uses: 'actions/checkout@v2'
with:
fetch-depth: 0
- uses: 'actions/cache@v2'
with:
path: './stm32-tools'
key: stm32-host-${{ secrets.MODULES_STM32_CACHE_VERSION }}-${{ hashFiles('cmake/*') }}
restore-keys: stm32-host-${{ secrets.MODULES_STM32_CACHE_VERSION }}-
- name: 'Configure'
run: cmake --preset=stm32-host .
- name: 'Build Simulator'
run: cmake --build --preset host --target flex-stacker-simulator
- name: 'Build and Test'
run: cmake --build --preset flex-stacker-tests
54 changes: 46 additions & 8 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
"targets": [
"thermocycler-gen2",
"heater-shaker",
"tempdeck-gen3"
"tempdeck-gen3",
"flex-stacker"
]
},
{
Expand All @@ -90,7 +91,8 @@
"targets": [
"thermocycler-gen2-build-and-test",
"heater-shaker-build-and-test",
"tempdeck-gen3-build-and-test"
"tempdeck-gen3-build-and-test",
"flex-stacker-build-and-test"
]
},
{
Expand Down Expand Up @@ -152,6 +154,26 @@
"tempdeck-gen3-debug"
]
},
{
"name": "flex-stacker-binary",
"displayName": "flex-stacker binary",
"description": "Build the flex-stacker cross binary",
"configurePreset": "stm32-cross",
"jobs": 4,
"targets": [
"flex-stacker"
]
},
{
"name": "flex-stacker-debug",
"displayName": "flex-stacker debug",
"description": "Build the flex-stacker cross debug",
"configurePreset": "stm32-cross",
"jobs": 4,
"targets": [
"flex-stacker-debug"
]
},
{
"name": "lint",
"displayName": "lint all",
Expand All @@ -162,7 +184,8 @@
"heater-shaker-lint",
"common-lint",
"thermocycler-gen2-lint",
"tempdeck-gen3-lint"
"tempdeck-gen3-lint",
"flex-stacker-lint"
]
},
{
Expand All @@ -175,7 +198,8 @@
"heater-shaker-format",
"common-format",
"thermocycler-gen2-format",
"tempdeck-gen3-format"
"tempdeck-gen3-format",
"flex-stacker-format"
]
},
{
Expand All @@ -188,7 +212,8 @@
"heater-shaker-format",
"common-format",
"thermocycler-gen2-format",
"tempdeck-gen3-format"
"tempdeck-gen3-format",
"flex-stacker-format"
]
},
{
Expand All @@ -200,7 +225,8 @@
"targets": [
"heater-shaker-simulator",
"thermocycler-gen2-simulator",
"tempdeck-gen3-simulator"
"tempdeck-gen3-simulator",
"flex-stacker-simulator"
]
},
{
Expand All @@ -212,7 +238,8 @@
"targets": [
"heater-shaker-simulator",
"thermocycler-gen2-simulator",
"tempdeck-gen3-simulator"
"tempdeck-gen3-simulator",
"flex-stacker-simulator"
]
},
{
Expand All @@ -225,7 +252,8 @@
"heater-shaker-build-and-test",
"common-build-and-test",
"thermocycler-gen2-build-and-test",
"tempdeck-gen3-build-and-test"
"tempdeck-gen3-build-and-test",
"flex-stacker-build-and-test"
]
},
{
Expand Down Expand Up @@ -258,6 +286,16 @@
"tempdeck-gen3-build-and-test"
]
},
{
"name": "flex-stacker-tests",
"displayName": "tests",
"description": "Runs build-and-test target for flex-stacker",
"configurePreset": "stm32-host",
"jobs": 4,
"targets": [
"flex-stacker-build-and-test"
]
},
{
"name": "common-tests",
"displayName": "tests",
Expand Down
1 change: 1 addition & 0 deletions stm32-modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,6 @@ add_subdirectory(common)
add_subdirectory(heater-shaker)
add_subdirectory(thermocycler-gen2)
add_subdirectory(tempdeck-gen3)
add_subdirectory(flex-stacker)

coverage_evaluate()
37 changes: 37 additions & 0 deletions stm32-modules/flex-stacker/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#FLEX Stacker

# This variable defines the name of the target for this subfolder.
set(TARGET_MODULE_NAME "flex-stacker")

add_subdirectory(src)

if (${CMAKE_CROSSCOMPILING})
add_subdirectory(firmware)
else()
add_subdirectory(tests)
add_subdirectory(simulator)
endif()

file(GLOB_RECURSE ${TARGET_MODULE_NAME}_SOURCES_FOR_FORMAT
./*.cpp ./*.hpp ./*.h
../include/${TARGET_MODULE_NAME}/*.hpp ../include/${TARGET_MODULE_NAME}/*.h)
list(FILTER ${TARGET_MODULE_NAME}_SOURCES_FOR_FORMAT EXCLUDE REGEX ".*MCSDK.*")

# Targets for formatting. These are here rather than in individual target CMakeLists (e.g.
# the ones in tests/ or firmware/) because they don't have semantic reasoning involved and
# can therefore operate on file globs, unlike lint/static analysis

# Target for use during dev - edits files
add_custom_target(
${TARGET_MODULE_NAME}-format
ALL
COMMENT "Formatting code"
COMMAND ${Clang_CLANGFORMAT_EXECUTABLE} -style=file -i ${${TARGET_MODULE_NAME}_SOURCES_FOR_FORMAT}
)

# Target for use in ci - warnings are errors, doesn't edit files
add_custom_target(
${TARGET_MODULE_NAME}-format-ci
COMMENT "Checking format"
COMMAND ${Clang_CLANGFORMAT_EXECUTABLE} -style=file -Werror --ferror-limit=0 -n ${${TARGET_MODULE_NAME}_SOURCES_FOR_FORMAT}
)
Loading

0 comments on commit 94a1246

Please sign in to comment.