Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@
**/*.a
**/*.so
**/*.log
/build*/
/src/vcpkg_installed

# vcpkg artifacts
external/vcpkg/buildtrees
external/vcpkg/packages
external/vcpkg/downloads
external/vcpkg/installed
external/vcpkg/vcpkg
22 changes: 11 additions & 11 deletions .github/test-matrix.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
[
{ "name": "almalinux-9", "arch": "amd64", "tag": "@sha256:27aba382812a4ad52f32589bc35dad62bc1bec966df6c3ca34e15eea83dfb6cd", "git_label": "ghcr.io/microsoft/kompli/almalinux-9-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "azurelinux-3", "arch": "amd64", "tag": "@sha256:5e972f22e641d609dbf490f2116ddb0eb6f232bb5e7d9ac48e0fb827d93d9566", "git_label": "ghcr.io/microsoft/kompli/azurelinux-3-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "debian-12", "arch": "amd64", "tag": "@sha256:eeb284231a1c4035cab7bdddc36af1e2e5fa5cbfb7d0e9888aed8ad4101d7eef", "git_label": "ghcr.io/microsoft/kompli/debian-12-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "oraclelinux-8", "arch": "amd64", "tag": "@sha256:fbd141a63c80f05c18cd78a69ceede010e67f06ef74faf915d5d4a12c040c496", "git_label": "ghcr.io/microsoft/kompli/oraclelinux-8-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "rhel-8", "arch": "amd64", "tag": "@sha256:4d527bf8eb9a71a745f7f8d965c50d3a1e9b26a5c49c778a139479e4d54626a2", "git_label": "ghcr.io/microsoft/kompli/rhel-8-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "rhel-9", "arch": "amd64", "tag": "@sha256:493edc77899a9e5c034561179a1b7ef1d813778bee5dc2c453356436dc33153b", "git_label": "ghcr.io/microsoft/kompli/rhel-9-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "rockylinux-9", "arch": "amd64", "tag": "@sha256:a0f2b6c70b6d47c9d3ee81ec3d7a9fc2e3122cf1ac893fee2087946ee9078b99", "git_label": "ghcr.io/microsoft/kompli/rockylinux-9-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "sles-15", "arch": "amd64", "tag": "@sha256:c264c47e8772060f5a5a9b26ee62ad646cc984d719e32576688d19af4953da21", "git_label": "ghcr.io/microsoft/kompli/sles-15-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "ubuntu-20.04", "arch": "amd64", "tag": "@sha256:326f92ee417a0810e3d282b83542683d3beb65b297836529979705e9331fc213", "git_label": "ghcr.io/microsoft/kompli/ubuntu-20.04-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "ubuntu-22.04", "arch": "amd64", "tag": "@sha256:93793e1d5981e4abf256988afabe289807ef6f710714b394b51e5baf6d9a77e5", "git_label": "ghcr.io/microsoft/kompli/ubuntu-22.04-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"},
{ "name": "ubuntu-24.04", "arch": "amd64", "tag": "@sha256:e34558434b4814ac851460033ee210fb93f2e57f40f9f15d169d728ed910e4e8", "git_label": "ghcr.io/microsoft/kompli/ubuntu-24.04-amd64:git-db3dcdd446c78630f9d77b6ae3a471bb8f0acfdb"}
{ "name": "almalinux-9", "arch": "amd64", "tag": "@sha256:f9aaafc6cdd213e8f46b6eceefb0ff69934257f0c6b131833ef1cebb96256591", "git_label": "ghcr.io/microsoft/kompli/almalinux-9-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "azurelinux-3", "arch": "amd64", "tag": "@sha256:ebe0dddc9dd6c4fbd182361b9e091cbd7019493f3f5bc4f48657c07585da437f", "git_label": "ghcr.io/microsoft/kompli/azurelinux-3-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "debian-12", "arch": "amd64", "tag": "@sha256:15a82dbf1bef6a64b4d2dd2bf17134171cbc6592f09459fa3026d7af06ea8d35", "git_label": "ghcr.io/microsoft/kompli/debian-12-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "oraclelinux-8", "arch": "amd64", "tag": "@sha256:c620433633301aad9070f9abca1afd7c228fae7adb85c2c2a8fa639435b1eb8f", "git_label": "ghcr.io/microsoft/kompli/oraclelinux-8-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "rhel-8", "arch": "amd64", "tag": "@sha256:f3f55330dfa9abf1e65d0d860a2d8ee34d9cb16de03bd3a8c17b10bfd1370bf8", "git_label": "ghcr.io/microsoft/kompli/rhel-8-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "rhel-9", "arch": "amd64", "tag": "@sha256:35469313bbd24b0278f67856f840f2b88f04229fee3a11597283f0b85f826776", "git_label": "ghcr.io/microsoft/kompli/rhel-9-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "rockylinux-9", "arch": "amd64", "tag": "@sha256:43716d4a8228cec119c5dfed68f7439f4a8438fd789812a2c7b05d1a2c925131", "git_label": "ghcr.io/microsoft/kompli/rockylinux-9-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "sles-15", "arch": "amd64", "tag": "@sha256:f751cb29f8bb7cf47e6e32f149d30215d48128d624d469f8a1db87e188d5f766", "git_label": "ghcr.io/microsoft/kompli/sles-15-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "ubuntu-20.04", "arch": "amd64", "tag": "@sha256:472472246488377d526d05218df5bc96ddbdf9080638155bf2cc421b6105937f", "git_label": "ghcr.io/microsoft/kompli/ubuntu-20.04-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "ubuntu-22.04", "arch": "amd64", "tag": "@sha256:ff9492087fda67081afee9fff170d3ab0636eec5cac54afc5c315382ce33d253", "git_label": "ghcr.io/microsoft/kompli/ubuntu-22.04-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"},
{ "name": "ubuntu-24.04", "arch": "amd64", "tag": "@sha256:6347babfa21715a5bad7146a0a25c52e14a651941176d6196e6a6543afee9ca5", "git_label": "ghcr.io/microsoft/kompli/ubuntu-24.04-amd64:git-805a020d5adc3f989785111b86b2d5c5b880421e"}
]
19 changes: 19 additions & 0 deletions .github/workflows/build-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,32 @@ on:
pull_request:
paths:
- devops/docker/**/Dockerfile
- devops/scripts/install-container-cmake.sh
- devops/scripts/prepare-container-dependencies.sh
- devops/scripts/download-vcpkg-asset.sh
- devops/scripts/tests/test_container_dependencies.py
- devops/scripts/tests/test_container_cmake.py
- external/vcpkg
- src/vcpkg*.json
- src/CMakeLists.txt
- src/ports-overlay/**
- src/triplets/**
- .github/workflows/build-containers.yml
push:
branches:
- dev
- main
paths:
- devops/docker/**/Dockerfile
- devops/scripts/install-container-cmake.sh
- devops/scripts/prepare-container-dependencies.sh
- devops/scripts/download-vcpkg-asset.sh
- devops/scripts/tests/test_container_cmake.py
- external/vcpkg
- src/vcpkg*.json
- src/CMakeLists.txt
- src/ports-overlay/**
- src/triplets/**
- .github/workflows/build-containers.yml
workflow_dispatch:
inputs:
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ jobs:
with:
container: ${{ steps.container.outputs.id }}
cmd: |
(cd external/vcpkg && sed -e "s/\"2\\.7\\.4\"/\"1\\.0\\.0\"/g" -i scripts/vcpkg-tools.json && ./bootstrap-vcpkg.sh)
mkdir build && cd build
if [ "${{ matrix.target.name }}" = "ubuntu-14.04" ]; then
cmake ../src -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} -Duse_prov_client=ON -Dhsm_type_symm_key=ON -DCOMPILE_WITH_STRICTNESS=ON -DBUILD_TESTS=ON -DBUILD_SAMPLES=ON -DBUILD_ADAPTERS=ON -Duse_default_uuid=ON -DVCPKG_OVERLAY_TRIPLETS=../src/triplets -DVCPKG_TARGET_TRIPLET=x64-linux-gcc5 -DVCPKG_OVERLAY_PORTS=../src/ports-overlay
Expand Down
71 changes: 66 additions & 5 deletions devops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,69 @@ This folder contains the artifacts and scripts used by our engineering systems (
- `terraform` - terraform modules for provisioning Azure resources for E2E tests
- `rpm` - RPM packaging scripts

## Updating Build contaienrs used for CI builds
The `docker/<os>-<arch>` - Build containers are used by ci [ci.yml](.github/workflows/ci.yml)
Their version(digest's) are stored inside [test-matrix.json](.github/test-matrix.json)
The [build-containers.yml](.github/workflows/build-contains.yml) is ran whenever any Build Containers dockerfile is changed.
The [build-containers.yml](.github/workflows/build-contains.yml) produces new-test-matrix.json that can be copted to [test-matrix.json](.github/test-matrix.json) and commited. Then next [ci.yml](.github/workflows/ci.yml) will use updated containers to run builds & tests.
## Updating build containers used for CI builds
All build containers use a two-stage CMake source build:

1. `ARG CMAKE_VERSION=v3.30.1` selects the bootstrap CMake tag. This version
supports the system OpenSSL 1.1 development libraries on Oracle Linux 8,
RHEL 8, and Ubuntu 20.04.
2. The bootstrap CMake installs the dependencies from
[`src/vcpkg.json`](../src/vcpkg.json), including OpenSSL 3.6 or newer. vcpkg
acquires Ninja first, then uses the bootstrap tools without downloading a
newer CMake binary.
3. The final CMake version is selected from the Linux amd64 entry in
[`external/vcpkg/scripts/vcpkg-tools.json`](../external/vcpkg/scripts/vcpkg-tools.json)
and built from source against the static OpenSSL libraries installed by
vcpkg. Static linking keeps the final tools usable after the temporary
dependency installation is removed. Headers, libraries, and pkg-config
metadata all come from that same OpenSSL prefix.
4. The manifest is installed again with the final CMake to refresh package ABIs
and populate the binary cache used by subsequent offline project builds.

Both CMake builds verify the installed `cmake`, `ctest`, and `cpack` versions.
`--build-arg CMAKE_VERSION=v3.30.1` can override the bootstrap tag only; the
final version always follows vcpkg's tool metadata. Build images from the repository root
with Podman (or Docker with BuildKit enabled) and the vcpkg submodule initialized,
for example:

```bash
git submodule update --init --recursive
docker build --layers -f devops/docker/ubuntu-24.04-amd64/Dockerfile .
```

The images install all dependencies from [`src/vcpkg.json`](../src/vcpkg.json),
including Lua, while network access is available. The bootstrapped vcpkg tree,
downloaded source archives and helper tools, binary packages, and registry cache
are retained under `/opt/kompli`. `KOMPLI_VCPKG_ROOT` selects that bootstrapped
tree for CMake; builds outside these images still use a build-local vcpkg tree.
Each build restores dependencies into its own `build/vcpkg_installed` directory.
The image also retains the registry lock and seeds it into fresh build trees,
preventing vcpkg from fetching registry HEAD when no installation exists yet.
The images block vcpkg origin downloads after dependency preparation, so a
missing asset fails explicitly instead of downloading during the project build.
During dependency preparation, the asset helper retrieves Lua archives from the
MacPorts mirror; vcpkg still verifies the SHA512 from the selected port. Other
assets use their upstream URLs. The helper is disabled for offline builds.

Every image must pass a fresh Release configure and build with tests enabled,
telemetry disabled, and `RUN --network=none`. This checks the actual project
without network access before the image can be published. Optional telemetry
uses an external SDK outside the vcpkg manifest and is not covered by this
offline check.

Changes to the manifest, registry configuration, vcpkg submodule, overlays,
triplets, CMake installation script, dependency preparation script, root CMake configuration, or Dockerfiles
trigger the [build-container workflow](../.github/workflows/build-containers.yml).
Rebuild images when these dependency inputs change; do not enable downloads in
the later project build to work around stale images.

Run the container setup regression tests locally with:

```bash
python3 -m unittest discover -s devops/scripts/tests
```

The images are used by [CI](../.github/workflows/ci.yml), with pinned digests in
[`test-matrix.json`](../.github/test-matrix.json). After rebuilding, copy the
workflow's `new-test-matrix.json` artifact into that file and commit it so later
builds use the new images.
30 changes: 22 additions & 8 deletions devops/docker/almalinux-9-amd64/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
# TODO: Add mcr.io retagged images
FROM almalinux:9@sha256:245f8aab832fe800aa42bdab5fad75ebbd8e0b4c9f24820a83c638b177857ae2

ARG CMAKE_VERSION=v3.30.1

RUN dnf install -y \
autoconf \
gcc \
Expand All @@ -26,11 +24,27 @@ ENV PATH="/opt/kompli-venv/bin:${PATH}"
WORKDIR /git

# CMake
RUN git clone https://github.com/Kitware/CMake --recursive -b ${CMAKE_VERSION}
RUN cd CMake && ./bootstrap && make -j$(nproc) && make install && hash -r && rm -rf /git/CMake
ARG CMAKE_VERSION=v3.30.1
COPY devops/scripts/install-container-cmake.sh /usr/local/bin/install-container-cmake
RUN bash /usr/local/bin/install-container-cmake "$CMAKE_VERSION" /usr/local


ENV KOMPLI_VCPKG_ROOT=/opt/kompli/vcpkg \
VCPKG_DOWNLOADS=/opt/kompli/downloads \
VCPKG_DEFAULT_BINARY_CACHE=/opt/kompli/binary-cache \
X_VCPKG_REGISTRIES_CACHE=/opt/kompli/registries \
VCPKG_DISABLE_METRICS=1
COPY external/vcpkg /opt/kompli/vcpkg
COPY devops/scripts/download-vcpkg-asset.sh /usr/local/bin/download-vcpkg-asset.sh
COPY devops/scripts/prepare-container-dependencies.sh /usr/local/bin/prepare-container-dependencies
RUN --mount=type=bind,source=src,target=/src \
bash /usr/local/bin/prepare-container-dependencies /src

# Run vcpkg to install build depends
COPY . /src
WORKDIR /src
RUN (cd external/vcpkg && ./bootstrap-vcpkg.sh) && (cd src && ../external/vcpkg/vcpkg install) && rm -rf /src
ENV X_VCPKG_ASSET_SOURCES="clear;x-block-origin"
RUN --network=none --mount=type=bind,source=src,target=/source/src \
cp -a /source /tmp/kompli-offline && \
cmake -S /tmp/kompli-offline/src -B /tmp/kompli-offline/build \
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_TELEMETRY=OFF && \
cmake --build /tmp/kompli-offline/build --parallel "$(nproc)" && \
rm -rf /tmp/kompli-offline
WORKDIR /kompli
30 changes: 27 additions & 3 deletions devops/docker/azurelinux-3-amd64/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ RUN tdnf install -y \
file \
git \
jq \
openssl-devel \
perl \
perl-IPC-Cmd \
python3 \
Expand All @@ -29,6 +30,29 @@ RUN tdnf upgrade -y && \
RUN python3 -m venv /opt/kompli-venv
ENV PATH="/opt/kompli-venv/bin:${PATH}"

COPY . /src
WORKDIR /src
RUN (cd external/vcpkg && ./bootstrap-vcpkg.sh) && (cd src && ../external/vcpkg/vcpkg install) && rm -rf /src
WORKDIR /git

# CMake
ARG CMAKE_VERSION=v3.30.1
COPY devops/scripts/install-container-cmake.sh /usr/local/bin/install-container-cmake
RUN bash /usr/local/bin/install-container-cmake "$CMAKE_VERSION" /usr/local

ENV KOMPLI_VCPKG_ROOT=/opt/kompli/vcpkg \
VCPKG_DOWNLOADS=/opt/kompli/downloads \
VCPKG_DEFAULT_BINARY_CACHE=/opt/kompli/binary-cache \
X_VCPKG_REGISTRIES_CACHE=/opt/kompli/registries \
VCPKG_DISABLE_METRICS=1
COPY external/vcpkg /opt/kompli/vcpkg
COPY devops/scripts/download-vcpkg-asset.sh /usr/local/bin/download-vcpkg-asset.sh
COPY devops/scripts/prepare-container-dependencies.sh /usr/local/bin/prepare-container-dependencies
RUN --mount=type=bind,source=src,target=/src \
bash /usr/local/bin/prepare-container-dependencies /src

ENV X_VCPKG_ASSET_SOURCES="clear;x-block-origin"
RUN --network=none --mount=type=bind,source=src,target=/source/src \
cp -a /source /tmp/kompli-offline && \
cmake -S /tmp/kompli-offline/src -B /tmp/kompli-offline/build \
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_TELEMETRY=OFF && \
cmake --build /tmp/kompli-offline/build --parallel "$(nproc)" && \
rm -rf /tmp/kompli-offline
WORKDIR /kompli
28 changes: 22 additions & 6 deletions devops/docker/debian-12-amd64/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
FROM mcr.microsoft.com/mirror/docker/library/debian:bookworm@sha256:d74df7598108a173a621eda4d58a2adbf850b2d9a9d81bc2cca1a6c21174a880

ARG CMAKE_VERSION=v3.30.1
ARG DEBIAN_FRONTEND=noninteractive

RUN apt -y update && apt-get -y install software-properties-common
Expand Down Expand Up @@ -29,9 +28,26 @@ ENV PATH="/opt/kompli-venv/bin:${PATH}"
WORKDIR /git

# CMake
RUN git clone https://github.com/Kitware/CMake --recursive -b ${CMAKE_VERSION}
RUN cd CMake && ./bootstrap && make -j$(nproc) && make install && hash -r && rm -rf /git/CMake
ARG CMAKE_VERSION=v3.30.1
COPY devops/scripts/install-container-cmake.sh /usr/local/bin/install-container-cmake
RUN bash /usr/local/bin/install-container-cmake "$CMAKE_VERSION" /usr/local

ENV KOMPLI_VCPKG_ROOT=/opt/kompli/vcpkg \
VCPKG_DOWNLOADS=/opt/kompli/downloads \
VCPKG_DEFAULT_BINARY_CACHE=/opt/kompli/binary-cache \
X_VCPKG_REGISTRIES_CACHE=/opt/kompli/registries \
VCPKG_DISABLE_METRICS=1
COPY external/vcpkg /opt/kompli/vcpkg
COPY devops/scripts/download-vcpkg-asset.sh /usr/local/bin/download-vcpkg-asset.sh
COPY devops/scripts/prepare-container-dependencies.sh /usr/local/bin/prepare-container-dependencies
RUN --mount=type=bind,source=src,target=/src \
bash /usr/local/bin/prepare-container-dependencies /src

COPY . /src
WORKDIR /src
RUN (cd external/vcpkg && ./bootstrap-vcpkg.sh) && (cd src && ../external/vcpkg/vcpkg install) && rm -rf /src
ENV X_VCPKG_ASSET_SOURCES="clear;x-block-origin"
RUN --network=none --mount=type=bind,source=src,target=/source/src \
cp -a /source /tmp/kompli-offline && \
cmake -S /tmp/kompli-offline/src -B /tmp/kompli-offline/build \
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_TELEMETRY=OFF && \
cmake --build /tmp/kompli-offline/build --parallel "$(nproc)" && \
rm -rf /tmp/kompli-offline
WORKDIR /kompli
35 changes: 27 additions & 8 deletions devops/docker/oraclelinux-8-amd64/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
# TODO: Add mcr.io retagged images
FROM oraclelinux:8@sha256:1f74281d8cc37c6e4adef0559f4c583022193dcfa8562d2e4a87161b6cd54df8

ARG CMAKE_VERSION=v3.30.1

RUN yum install -y \
autoconf \
curl \
gcc \
gcc-c++ \
git \
Expand All @@ -15,17 +14,37 @@ RUN yum install -y \
perl \
perl-IPC-Cmd \
python38 \
rpm-build
rpm-build \
tar \
unzip \
zip

RUN python3.8 -m venv /opt/kompli-venv
ENV PATH="/opt/kompli-venv/bin:${PATH}"

WORKDIR /git

# CMake
RUN git clone https://github.com/Kitware/CMake --recursive -b ${CMAKE_VERSION}
RUN cd CMake && ./bootstrap && make -j$(nproc) && make install && hash -r && rm -rf /git/CMake
ARG CMAKE_VERSION=v3.30.1
COPY devops/scripts/install-container-cmake.sh /usr/local/bin/install-container-cmake
RUN bash /usr/local/bin/install-container-cmake "$CMAKE_VERSION" /usr/local

ENV KOMPLI_VCPKG_ROOT=/opt/kompli/vcpkg \
VCPKG_DOWNLOADS=/opt/kompli/downloads \
VCPKG_DEFAULT_BINARY_CACHE=/opt/kompli/binary-cache \
X_VCPKG_REGISTRIES_CACHE=/opt/kompli/registries \
VCPKG_DISABLE_METRICS=1
COPY external/vcpkg /opt/kompli/vcpkg
COPY devops/scripts/download-vcpkg-asset.sh /usr/local/bin/download-vcpkg-asset.sh
COPY devops/scripts/prepare-container-dependencies.sh /usr/local/bin/prepare-container-dependencies
RUN --mount=type=bind,source=src,target=/src \
bash /usr/local/bin/prepare-container-dependencies /src

COPY . /src
WORKDIR /src
RUN (cd external/vcpkg && ./bootstrap-vcpkg.sh) && (cd src && ../external/vcpkg/vcpkg install) && rm -rf /src
ENV X_VCPKG_ASSET_SOURCES="clear;x-block-origin"
RUN --network=none --mount=type=bind,source=src,target=/source/src \
cp -a /source /tmp/kompli-offline && \
cmake -S /tmp/kompli-offline/src -B /tmp/kompli-offline/build \
-DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON -DBUILD_TELEMETRY=OFF && \
cmake --build /tmp/kompli-offline/build --parallel "$(nproc)" && \
rm -rf /tmp/kompli-offline
WORKDIR /kompli
Loading
Loading