Skip to content

CLI als Standalone-Binary

Die CLI ohne Installer, für CI-Runner, Docker, Linux und macOS.

Auf CI-Runnern, in Docker-Images und auf Linux- oder macOS-Devs ist der Standalone-CLI-Build der richtige Weg. Ein selbst-enthaltenes Binary, keine Runtime-Voraussetzung, ein einzelnes Archiv zum Auspacken.

Welcher Build für welche Plattform

Datei Für
codecharter-X.Y.Z-win-x64.zip Windows x64
codecharter-X.Y.Z-linux-x64.tar.gz Linux x64 (glibc-basiert)
codecharter-X.Y.Z-osx-x64.tar.gz macOS Intel
codecharter-X.Y.Z-osx-arm64.tar.gz macOS Apple Silicon

Alle vier sind im Portal unter /downloads verfügbar.

Download und Auspacken

# Beispiel: Linux x64
curl -L -o codecharter.tar.gz \
    -H "Authorization: Bearer $CODECHARTER_API_KEY" \
    https://codecharter.tools/api/v1/cli/linux-x64/latest

mkdir -p /opt/codecharter
tar -xzf codecharter.tar.gz -C /opt/codecharter
chmod +x /opt/codecharter/codecharter
/opt/codecharter/codecharter --version

Auf macOS müsst ihr beim ersten Start eventuell den Gatekeeper-Check durchklicken (Systemeinstellungen → Datenschutz → "Trotzdem öffnen") oder das Quarantäne-Attribut entfernen:

xattr -dr com.apple.quarantine /opt/codecharter

Wir lassen die Binaries vorerst nicht notarisieren. Wenn euch das auf macOS stört, sagt Bescheid, wir können den Schritt in den Release-Workflow einbauen.

In Docker

FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
WORKDIR /app
COPY . .
RUN dotnet build -c Release

FROM mcr.microsoft.com/dotnet/runtime:9.0
WORKDIR /app

ARG CODECHARTER_API_KEY
RUN mkdir -p /opt/codecharter \
    && curl -sSL -H "Authorization: Bearer $CODECHARTER_API_KEY" \
    -o codecharter.tar.gz \
    https://codecharter.tools/api/v1/cli/linux-x64/latest \
    && tar -xzf codecharter.tar.gz -C /opt/codecharter \
    && rm codecharter.tar.gz \
    && chmod +x /opt/codecharter/codecharter

ENV PATH="/opt/codecharter:${PATH}"
COPY --from=build /app/publish ./
RUN codecharter analyze . --output sarif --output-file codecharter.sarif

Caching in CI

Die Archive sind klein (5-10 MB). Wenn euer CI-Provider Caching unterstützt, cache das ausgepackte Verzeichnis statt das Archiv. Auspacken ist die teurere Operation als Download.

GitHub Actions cached automatisch wenn ihr die offizielle Action nutzt. Siehe GitHub Actions.

Versions-Pinning

Statt /latest/ könnt ihr eine konkrete Version pinnen:

https://codecharter.tools/api/v1/cli/linux-x64/1.4.0

Wir empfehlen das für reproduzierbare Builds. Siehe Versionierung.

PATH-Setup

Wenn ihr das CLI-Verzeichnis nicht im PATH habt, könnt ihr den vollen Pfad nutzen. Für persistentes PATH-Setup auf einer Workstation:

# Linux/macOS, in .bashrc oder .zshrc
export PATH="/opt/codecharter:$PATH"
# Windows
[Environment]::SetEnvironmentVariable("PATH",
    "$env:PATH;C:\codecharter", "User")