Repository navigation
Add xvec containerized C++ toolchain, devcontainer, and GHCR image workflow - #9
danieltowner with Copilot wants to merge 11 commits into
Conversation
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
|
@copilot Pleas make icx the default tool chain. |
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Addressed in |
|
@copilot Remove the documentation note about SDE redistribution. |
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Addressed in |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
Unresolved critical and moderate findings affect workflow security, artifact integrity, publication, runtime configuration, and compiler selection.
Get a fresh assessment by requesting another Copilot review.
Review effort: Lite
Findings: 2
Open (3)
What changed in this PR
Adds a containerized Ubuntu 24.04 C++ toolchain, Dev Container configuration, GHCR publishing workflow, documentation, and licensing metadata.
Changes:
- Adds GCC, Clang, oneAPI, MrDocs, Intel SDE, CMake, and Boost tooling.
- Adds Docker, Dev Container, VS Code, and GHCR workflow configuration.
- Documents usage, proxy builds, compiler selection, and redistribution terms.
| File | Summary |
|---|---|
third-party-programs.txt |
Documents MrDocs and Intel SDE redistribution terms. |
README.md |
Links to container development documentation. |
docs/development-container.md |
Documents builds, usage, compiler switching, and GHCR behavior. |
Dockerfile |
Defines the toolchain image. Findings: critical unverified MrDocs download (3 votes); moderate oneAPI runtime setup and proxy handling; nit inaccurate license label. |
.vscode/extensions.json |
Recommends Dev Containers. |
.github/workflows/toolchain-image.yml |
Builds and publishes the image. Findings: critical PR packages: write permissions; moderate unconditional publication and redistribution gating. |
.dockerignore |
Controls Docker build context. |
.devcontainer/devcontainer.json |
Configures Dev Containers. Finding: moderate hard-coded compiler settings override environment selection. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| permissions: | ||
| contents: read | ||
| packages: write |
There was a problem hiding this comment.
Fixed in d8c0095: the workflow now runs validation builds with packages: none and isolates publishing to a separate job that only runs on pushes to main with packages: write.
| "https://github.com/cppalliance/mrdocs/releases/download/${MRDOCS_VERSION}/MrDocs-${MRDOCS_VERSION}-Linux.tar.gz" \ | ||
| -o /tmp/mrdocs.tar.gz \ |
There was a problem hiding this comment.
Addressed in 23a8ed2 by pinning the MRDocs release SHA-256 in the Dockerfile and verifying the downloaded archive before extraction.
| && test -x /opt/intel/oneapi/compiler/latest/bin/icx \ | ||
| && test -x /opt/intel/oneapi/compiler/latest/bin/icpx \ | ||
| && ln -sf /opt/intel/oneapi/compiler/latest/bin/icx /usr/local/bin/icx \ | ||
| && ln -sf /opt/intel/oneapi/compiler/latest/bin/icpx /usr/local/bin/icpx \ |
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>
Co-authored-by: danieltowner <77799332+danieltowner@users.noreply.github.com>


This adds a repository-owned Ubuntu 24.04 C++ toolchain environment for
intel/xvecand wires it into local Docker use, VS Code Dev Containers/Codespaces, and GHCR publishing. The image definition pins the requested compiler/doc/test tooling set, includes Intel SDE with amd64-only handling, and documents the proxy and redistribution constraints around that bundle.Toolchain image
Dockerfilefor Ubuntu 24.04 with:ppa:ubuntu-toolchain-r/test, selected as defaultgcc,g++,cc,c++apt.llvm.orgwith unversioned alternatives forclang,clangd,clang-format,clang-tidy,lldbicx/icpx2026.9.4under/opt/mrdocs10.13.1-2026-07-28under/opt/intel-sde, exposed assde,sde64,xed,xed64ccmakeand Boost.TestNO_PROXY/no_proxyclearing for external repo/download steps.amd64builds and verifies the installed toolchain at build time.Dev container
.devcontainer/devcontainer.jsontargetingghcr.io/intel/xvec-toolchain:latest.--cap-add=SYS_PTRACE--security-opt=seccomp=unconfinedCC=gcc,CXX=g++.GHCR publishing
.github/workflows/toolchain-image.ymlto:mainghcr.io/intel/xvec-toolchainforlinux/amd64only.Build context and editor metadata
.dockerignorewith generated-output and platform junk exclusions while keeping repository-owned devcontainer/editor config needed for image-related validation..vscode/extensions.jsonrecommending Dev Containers for local repository use.Docs
docs/development-container.mdcovering:docker runwith workspace bind mountsbuild/usagelinux/amd64/ Codespaces caveatsREADME.md.Licensing / redistribution
third-party-programs.txtfor MrDocs and Intel SDE.Example local proxy build now documented in-repo: