aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/cmake-sm1000.yml43
-rw-r--r--.github/workflows/cmake.yml58
2 files changed, 101 insertions, 0 deletions
diff --git a/.github/workflows/cmake-sm1000.yml b/.github/workflows/cmake-sm1000.yml
new file mode 100644
index 0000000..cce1bbe
--- /dev/null
+++ b/.github/workflows/cmake-sm1000.yml
@@ -0,0 +1,43 @@
+name: Build SM1000
+
+on: [pull_request]
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Debug
+
+jobs:
+ build:
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install packages
+ shell: bash
+ run: |
+ sudo apt-get update
+ sudo apt-get install octave octave-common octave-signal liboctave-dev gnuplot sox p7zip-full python3-numpy valgrind
+
+ - name: Install ST Standard Peripheral Library (SM1000)
+ working-directory: ${{github.workspace}}/stm32
+ shell: bash
+ run: git clone https://github.com/whimsicalraps/STM32F4xx_DSP_StdPeriph_Lib
+
+ - name: Install SM1000 prerequisites
+ working-directory: ${{github.workspace}}/stm32
+ shell: bash
+ run: sudo apt install gcc-arm-none-eabi
+
+ - name: Build SM1000
+ working-directory: ${{github.workspace}}/stm32
+ shell: bash
+ run: |
+ mkdir build_stm32
+ cd build_stm32
+ cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/STM32_Toolchain.cmake -DPERIPHLIBDIR=${{github.workspace}}/stm32/STM32F4xx_DSP_StdPeriph_Lib ..
+ make
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
new file mode 100644
index 0000000..79eb86a
--- /dev/null
+++ b/.github/workflows/cmake.yml
@@ -0,0 +1,58 @@
+name: Build Codec2 for Linux
+
+on: [pull_request]
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Debug
+
+jobs:
+ build:
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install packages
+ shell: bash
+ run: |
+ sudo apt-get update
+ sudo apt-get install octave octave-common octave-signal liboctave-dev gnuplot sox p7zip-full python3-numpy valgrind
+
+ - name: Create Build Directory
+ shell: bash
+ run: mkdir $GITHUB_WORKSPACE/build_linux
+
+ - name: Configure codec2 CMake
+ shell: bash
+ working-directory: ${{github.workspace}}/build_linux
+ run: cmake -DUNITTEST=1 $GITHUB_WORKSPACE
+
+ - name: Build LPCNet and Run ctests
+ shell: bash
+ run: |
+ cd $HOME
+ git clone https://github.com/drowe67/LPCNet.git
+ cd LPCNet && mkdir -p build_linux && cd build_linux
+ cmake .. && make && ctest
+
+ - name: Build codec2 with LPCNet
+ working-directory: ${{github.workspace}}/build_linux
+ shell: bash
+ run: |
+ cmake -DLPCNET_BUILD_DIR=$HOME/LPCNet/build_linux -DUNITTEST=1 $GITHUB_WORKSPACE
+ make -j4
+
+ - name: Run ctests
+ working-directory: ${{github.workspace}}/build_linux
+ shell: bash
+ run: ctest --output-on-failure
+
+ - name: Test library installation
+ working-directory: ${{github.workspace}}/build_linux
+ shell: bash
+ run: cmake --install . --prefix "$HOME/codec2_install" && rm -rf "$HOME/codec2_install"