You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: add image variant with vscode specific settings (#314)
* feat: add image variant with vscode specific settings
* chore: fix sign command for vscode container
* chore(devcontainer.json): remove unnecessary properties for this container
* chore: externalize metadata and extend contents
* ci: add checkout step to build-push
* chore: quote label data
* chore: simplify devcontainer-metadata-vscode.json
* chore: add back one extension
* chore: add more plug-ins
* chore: try to fix array escaping
* chore: use jq tostring to convert json to label
* chore: debug json magic
* chore: escape, quote, unescape, doule escape... for victory
* chore: hard-code metadata for now, I give up
* chore: single quote content of label to prevent shell interpolation
* chore: running out of ideas
* chore: why can't you leave my quotes alone
* ci: final victory
* chore: add vscode settings
* chore: change path to compile_commands
* chore: update vscode plugin versions
* chore: update documentation
* docs: minor update on merge logic for devcontainer.metadata
Copy file name to clipboardExpand all lines: README.md
+49-13Lines changed: 49 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,59 +14,95 @@ This repository is under active development; see [pulse](https://github.com/phil
14
14
15
15
## Description
16
16
17
+
### Image variants
18
+
19
+
Two devcontainers are published towards the [GitHub Container Registry](https://ghcr.io/):
20
+
21
+
-[amp-devcontainer](https://github.com/orgs/philips-software/packages/container/package/amp-devcontainer); the base container including all tools mentioned below
22
+
-[amp-devcontainer-vscode](https://github.com/orgs/philips-software/packages/container/package/amp-devcontainer-vscode); as above, but including a full [Visual Studio Code](https://code.visualstudio.com/) configuration that is compatible with [GitHub Codespaces](https://github.com/features/codespaces)
23
+
24
+
### amp-devcontainer
25
+
17
26
The amp-devcontainer built from this repository contains compilers and tools to facilitate modern (embedded) C++ development.
18
27
The amp-devcontainer includes support for host- and cross-compilation using gcc, arm-gcc and clang compilers.
19
28
Next to the compilers there is support for code-coverage measurement, mutation testing (using [mull](https://github.com/mull-project/mull)), fuzzing (using [libfuzzer](https://www.llvm.org/docs/LibFuzzer.html)) and static analysis (clang-format, clang-tidy, clangd, include-what-you-use).
20
29
The default build system is set up to use CMake, Ninja and CCache.
21
30
22
31
For the full list of all included tools and tool versions see the [Dependency Graph](https://github.com/philips-software/amp-devcontainer/network/dependencies), the SBOM published with a [release](https://github.com/philips-software/amp-devcontainer/releases), or the SBOM attached to the image.
23
32
24
-
##Build & Test
33
+
### amp-devcontainer-vscode
25
34
26
-
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.
35
+
The amp-devcontainer-vscode is a, slightly more, opinionated variant that can be used in Visual Studio Code or GitHub Codespaces without any additional configuration. All included tools are set-up and necessary plug-ins will be installed at container start. This behavior is implemented by appending devcontainer metadata to an image label according to the [specifications](https://containers.dev/implementors/reference/#labels). It is possible to override, amend or change the options following this [merge logic](https://containers.dev/implementors/spec/#merge-logic).
27
36
28
-
A test task is available to run the included `bats` tests. Choose `Tasks: Run Test Task` from the command pallette.
37
+
## Usage
29
38
30
-
## Verify image signature
39
+
###Verify image signature
31
40
32
-
The container image is signed with [SigStore](https://www.sigstore.dev/)[Cosign](https://docs.sigstore.dev/signing/quickstart/) using a keyless signing method.
41
+
The container images are signed with [SigStore](https://www.sigstore.dev/)[Cosign](https://docs.sigstore.dev/signing/quickstart/) using a keyless signing method.
33
42
34
43
The signature can be verified with the following command (using Docker), verifying that the image is actually signed by the GitHub CI system:
35
44
45
+
> amp-devcontainer
46
+
36
47
```sh
37
48
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
38
49
```
39
50
40
-
## Usage
51
+
> amp-devcontainer-vscode
52
+
53
+
```sh
54
+
docker run --rm gcr.io/projectsigstore/cosign verify ghcr.io/philips-software/amp-devcontainer-vscode --certificate-oidc-issuer https://token.actions.githubusercontent.com --certificate-identity-regexp https://github.com/philips-software/amp-devcontainer
55
+
```
56
+
57
+
The resulting containers can be used in a `.devcontainer.json` file or in a `.devcontainer` folder.
41
58
42
-
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.
59
+
> [!NOTE]
60
+
> While the following examples use the `latest` tag, it is recommended to pin to a specific version. Or better yet, a specific SHA.
43
61
44
-
> .devcontainer/devcontainer.json
62
+
### amp-devcontainer
63
+
64
+
> .devcontainer/devcontainer.json or .devcontainer.json
This project uses the [CODE_OF_CONDUCT](./CODE_OF_CONDUCT.md) to define expected conduct in our community. Instances of
84
+
This project uses a [code of conduct](./CODE_OF_CONDUCT.md) to define expected conduct in our community. Instances of
55
85
abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project [CODEOWNER](./.github/CODEOWNERS)
56
86
57
87
## Changelog
58
88
59
-
See [CHANGELOG](./CHANGELOG.md) for more info on what's been changed.
89
+
See the [changelog](./CHANGELOG.md) for more info on what's been changed.
60
90
61
91
## Contributing
62
92
63
-
See [CONTRIBUTING](./CONTRIBUTING.md)
93
+
This project uses [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html) and [Conventional Commits 1.0.0](https://www.conventionalcommits.org/en/v1.0.0/) please see the [contributing](./CONTRIBUTING.md) guideline for more information.
94
+
95
+
### Build & Test
96
+
97
+
The container can be built and tested locally by importing this repository in VS Code with the [`Remote Containers`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) plug-in installed. As a prerequisite Docker needs to be installed on the host system. Alternatively a GitHub Codespace can be started.
98
+
99
+
A test task is available to run the included `bats` tests. Choose `Tasks: Run Test Task` from the command pallette.
64
100
65
101
## Reporting vulnerabilities
66
102
67
103
If you find a vulnerability, please report it to us!
68
-
See [SECURITY.md](./SECURITY.md) for more information.
104
+
See [security](./SECURITY.md) for more information.
0 commit comments