Skip to content

🔋amp-devcontainer is a batteries-included devcontainer useable for modern, embedded, software development

License

Notifications You must be signed in to change notification settings

philips-software/amp-devcontainer

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4b81baf Â· Nov 13, 2023
Nov 13, 2023
Nov 13, 2023
Jan 27, 2023
Nov 8, 2023
Nov 8, 2023
Nov 9, 2023
Nov 13, 2023
Apr 4, 2023
Nov 13, 2023
Jan 27, 2023
Jan 27, 2023
Feb 1, 2023
Oct 31, 2023
Feb 1, 2023

Repository files navigation

amp-devcontainer

Linting & Formatting Build & Push

Overview

This repository contains a devcontainer tailored towards modern (embedded) C++ development.

State

This repository is under active development; see pulse for more details;

Description

The amp-devcontainer built from this repository contains compilers and tools to facilitate modern (embedded) C++ development. The amp-devcontainer includes support for host- and cross-compilation using gcc, arm-gcc and clang compilers. Next to the compilers there is support for code-coverage measurement, mutation testing (using mull), fuzzing (using libfuzzer) and static analysis (clang-format, clang-tidy, clangd, include-what-you-use). The default build system is set up to use CMake, Ninja and CCache.

For the full list of all included tools and tool versions see the Dependency Graph, the SBOM published with a release, or the SBOM attached to the image.

Build & Test

The container can be built and tested locally by importing this repository in VS Code with the Dev Containers (ms-vscode-remote.remote-containers) plug-in installed. As a prerequisite Docker needs to be installed on the host system. As an alternative a GitHub Codespace can be started.

A test task is available to run the included bats tests. Choose Tasks: Run Task from the command pallette and choose Run Tests.

Verify image signature

The container image is signed with SigStore Cosign using a keyless signing method.

The signature can be verified with the following command (using Docker), verifying that the image is actually signed by the GitHub CI system:

docker run --rm gcr.io/projectsigstore/cosign verify ghcr.io/philips-software/amp-devcontainer --certificate-oidc-issuer https://token.actions.githubusercontent.com --certificate-identity-regexp https://github.com/philips-software/amp-devcontainer

Usage

The resulting container can be used in a .devcontainer folder. While the example uses the latest tag, it is recommended to pin to a specific version. Or better yet, a specific SHA.

.devcontainer/devcontainer.json

{
    "image": "ghcr.io/philips-software/amp-devcontainer:latest"
}

Community

This project uses the CODE_OF_CONDUCT to define expected conduct in our community. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project CODEOWNER

Changelog

See CHANGELOG for more info on what's been changed.

Contributing

See CONTRIBUTING

Licenses

See LICENSE