Skip to content

Latest commit

 

History

History
100 lines (72 loc) · 7.04 KB

File metadata and controls

100 lines (72 loc) · 7.04 KB

OpenCyphal OpenCyphal Containerized Toolchains

This repository contains the Dockerfiles, instructions, and some utilities for building containers to be used as common toolchains and development environments for OpenCyphal projects. These containers are published to the opencyphal organization on Github and are used by the build automation for OpenCyphal projects. You can use these same containers to get consistent build results in your local development environment.

To allow hosting of multiple container builds from a single repo each toolchain container is assigned a prefix. For every release event in this repo the workflow triggered is based on that prefix in the release tag. For example, by creating a release with the tag ts18.4.1-alpha the release workflow for the toolshed container will be triggered.

opencyphal/toolshed:ts

The Open Cyphal toolshed container is based on Ubuntu and provides the necessary compilers and utilities to build and run OpenCyphal C or C++ projects like libcanard and Nunavut.

Supported Versions

tag Python GCC (native) GCC (arm-none-eabi) Clang (native) Cmake Host Platforms Other Utilities
ts24.4.3
  • 3.12
  • 3.10
  • 13.3.0
  • 12.3.0
  • 11.4.0
  • 10.5.0
  • 7.5.0
13.3.1
  • 19.1.7
  • 18.1.8
3.31.5
  • linux/amd64
  • linux/arm64
  • JLink V816
  • cppcheck-2.13
  • yakut 0.13.0
  • libpcap0.8-dev
  • network-tools
  • can-utils
  • doxygen 1.13.2
  • tox
  • nox
  • govr
  • gcc-multilib (amd64 only)
ts24.4.2
  • 3.12
  • 3.10
  • 13.3.0
  • 12.3.0
  • 11.4.0
  • 10.5.0
  • 7.5.0
13.3.1
  • 19.1.7
  • 18.1.8
3.31.5
  • linux/amd64
  • linux/arm64
  • yakut 0.13.0
  • libpcap0.8-dev
  • network-tools
  • can-utils
  • doxygen 1.13.2
  • gcc-multilib (amd64 only)
ts24.4.1
  • 3.12
  • 3.10
  • 13.3.0
  • 12.3.0
  • 11.4.0
  • 10.5.0
  • 7.5.0
13.3.1
  • 19.1.7
  • 18.1.8
3.31.5
  • linux/amd64
  • linux/arm64
  • can-utils
  • doxygen 1.13.2
  • tox
  • nox
  • govr
  • gcc-multilib (amd64 only)
  • ts22.4.10 3.10 12.3.0 13.3.1 18.1.3 3.30.1
    • linux/amd64
    • linux/arm64
    • qemu
    • can-utils
    • doxygen 1.10.0
    • nvm
    • node 20.x
    • nox
    • govr
    • gcc-multilib (amd64 only)
    ts22.4.8 3.10 12.3.0 (N/A) 18.1.3 3.22.1
    • linux/amd64
    • linux/arm64
    • qemu
    • can-utils
    • doxygen 1.10.0
    • nvm
    • node 20.x
    • nox
    • govr
    • gcc-multilib (amd64 only)
    ts22.4.7 3.10 12.3.0 (N/A) 18.1.3 3.22.1
    • linux/amd64
    • linux/arm64
    • qemu
    • can-utils
    • doxygen 1.10.0
    • nvm
    • node 20.x
    • nox
    • govr

    You can use this in your workflow yaml like this:

    jobs:
      my-job:
        runs-on: ubuntu-latest
        container: ghcr.io/opencyphal/toolshed:ts22.4.7
    

    opencyphal/texer:te

    The Open Cyphal texer container is based on Ubuntu and provides the necessary compilers and utilities to author and publish OpenCyphal LaTeX documents like the specification.

    Supported Versions

    tag Python Tex Live git Platforms Other Utilities
    te22.4.1 3.11 2022 2.34.1
    • linux/amd64
    • python pygments
    • lyx
    • inkscape
    te20.4.1 3.11 2019 2.25.1
    • linux/amd64
    • python pygments
    • lyx
    • inkscape

    You can use this in your workflow yaml like this:

    jobs:
      my-job:
        runs-on: ubuntu-latest
        container: ghcr.io/opencyphal/texer:te20.4.1
    

    opencyphal/toxic:tx

    The Open Cyphal toxic container is based on Ubuntu and provides all modern Python3 distributions, pip, tox, and nox. It can be used to develop, test, build, and release Python projects like nunavut, pydsdl, and pycyphal.

    Supported Versions

    tag Base Python Python Versions Tox Nox pip Platforms Other Utilities
    tx22.4.3 3.11 3.8, 3.9, 3.10, 3.11, 3.12 3.13 4.13.0 2023.4.22 20.0.2
    • linux/amd64
    • linux/arm64
    tx22.4.2 3.10 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 4.13.0 2023.4.22 20.0.2
    • linux/amd64
    • linux/arm64
    tx22.4.1 3.8 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 4.4.5 2023.4.22 20.0.2
    • linux/amd64
    tx20.4.1 3.8 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 4.4.5 (not available) 20.0.2
    • linux/amd64
    • sonar-scanner

    You can use this in your workflow yaml like this:

    jobs:
      my-job:
        runs-on: ubuntu-latest
        container: ghcr.io/opencyphal/toxic:tx20.4.2
    

    Note that, if you create a new container in this project, the prefix cannot end with 'v'. So "tu22.4.1" is okay but "tv28.3.1" won't work because the release workflows elide "v" (as in version) by default and the container will become "t28.3.1" in packages but "tv.28.3.1" as a git tag.