Skip to content

Implement file transfer thread #1486

Implement file transfer thread

Implement file transfer thread #1486

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- master
pull_request:
branches:
- master
release:
types:
- created
jobs:
format-and-spell-check:
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0-linux-x86
steps:
- uses: actions/checkout@v4
- name: Format check
run: cmake -P cmake/format.cmake
- name: Spell check
if: always()
run: cmake -P cmake/spell.cmake
coverage:
needs: format-and-spell-check
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0-linux-x86
steps:
- uses: actions/checkout@v4
- name: Configure
run: cmake --preset=ci-coverage
- name: Build all tests
run: cmake --build build/ci-coverage -t AllTests
- name: Test
working-directory: build/ci-coverage
run: ctest --output-on-failure
- name: Process coverage info
run: cmake --build build/ci-coverage -t coverage
- name: Submit to codecov.io
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: build/ci-coverage/coverage.info
sanitize:
needs: format-and-spell-check
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0-linux-x86
steps:
- uses: actions/checkout@v4
- name: Configure
run: cmake --preset=ci-sanitize
- name: Build all tests
run: cmake --build build/ci-sanitize -t AllTests
- name: Test
working-directory: build/ci-sanitize
env:
ASAN_OPTIONS: "strict_string_checks=1:\
detect_stack_use_after_return=1:\
check_initialization_order=1:\
strict_init_order=1:\
detect_leaks=1"
UBSAN_OPTIONS: print_stacktrace=1
run: ctest --output-on-failure
build-for-cobc:
needs: format-and-spell-check
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0
steps:
- uses: actions/checkout@v4
- name: Configure
run: cmake --preset=ci-cobc
- name: Build
run: cmake --build build/ci-cobc
- name: Build all tests
run: cmake --build build/ci-cobc -t AllTests
- name: Upload artifacts
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: CobcBinaries
path: |
./build/ci-cobc/*.bin
./build/ci-cobc/*.elf
./build/ci-cobc/Tests/**/*.bin
./build/ci-cobc/Tests/**/*.elf
- name: Add assets to release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
./build/ci-cobc/*.bin
./build/ci-cobc/*.elf
build-for-cobc-with-bootloader:
needs: format-and-spell-check
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0
steps:
- uses: actions/checkout@v4
# Building COBC binaries for use with the bootloader runs add_metadata.py which calls Git.
# Without this step, the Git command fails with an error about the workspace not being a safe
# directory.
- name: Mark workspace as safe
run: git config --global --add safe.directory $GITHUB_WORKSPACE
- name: Configure for COBC with bootloader
run: cmake --preset=ci-cobc-with-bootloader
- name: Build COBC FW for use with bootloader
run: cmake --build build/ci-cobc-with-bootloader
- name: Configure bootloader
run: cmake --preset=ci-bootloader
- name: Build bootloader
run: cmake --build build/ci-bootloader
- name: Upload artifacts
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/upload-artifact@v4
with:
name: CobcBinariesWithBootloader
path: |
./build/ci-cobc-with-bootloader/*.bin
./build/ci-cobc-with-bootloader/*.elf
./build/ci-bootloader/*.bin
./build/ci-bootloader/*.elf
- name: Add assets to release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
./build/ci-cobc-with-bootloader/*.bin
./build/ci-cobc-with-bootloader/*.elf
./build/ci-bootloader/*.bin
./build/ci-bootloader/*.elf
test:
needs: format-and-spell-check
runs-on: ubuntu-24.04
container: tuwienspaceteam/sts1-cobc:1.20.0-linux-x86
steps:
- uses: actions/checkout@v4
- name: Configure linux-x86
run: cmake --preset=ci-linux-x86
- name: Build all tests
run: cmake --build build/ci-linux-x86 -t AllTests
- name: Test
working-directory: build/ci-linux-x86/Tests
run: ctest --output-on-failure -C MinSizeRel