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")