GitHub Actions
Dieses Beispiel zeigt an einer einfachen WebApi-Anwendung, wie sich Babel Obfuscator nahtlos in GitHub Actions integrieren lässt. Die Integration soll zeigen, wie einfach Sie Babel Obfuscator über das NuGet-Paket zu Ihrem Projekt hinzufügen und wie Sie über GitHub-Geheimnisse sicher auf die Lizenzdatei zugreifen.
Außerdem zeigt das Beispiel, wie Sie NuGet so konfigurieren, dass es direkt auf den Paketspeicher von GitHub zugreift und das NuGet-Paket von Babel Obfuscator als Abhängigkeit in Ihrem Projekt installiert. Wenn Sie den Anweisungen Schritt für Schritt folgen, richten Sie Babel Obfuscator ohne Mühe in Ihrem Projekt ein und nutzen seine Verschleierungsfunktionen.
Für den Einstieg steht der Quellcode des Beispiels in unserem GitHub-Repository bereit. Dort können Sie die Integration im Einzelnen nachvollziehen.
git clone https://github.com/babelfornet/webapi-actions-example.gitUm Babel Obfuscator in GitHub Actions zu integrieren, fügen Sie Ihrem Projekt eine Referenz auf das NuGet-Paket von Babel Obfuscator hinzu. Durch dieses Paket wird Babel Obfuscator Teil Ihres Buildprozesses und verschleiert die Ziel-Assembly. Das Paket lässt sich direkt aus dem privaten NuGet-Feed von GitHub herunterladen und installieren.
Um das NuGet-Paket von Babel Obfuscator im Paketspeicher von GitHub einzurichten, erstellen Sie ein Zugriffstoken mit ausreichenden Berechtigungen, um NuGet-Pakete im Paketspeicher von GitHub zu veröffentlichen, zu installieren und zu löschen (siehe die Dokumentation von GitHub ). Anschließend laden Sie das NuGet-Paket von Babel Obfuscator mit dem dotnet-CLI-Tool hoch.
dotnet nuget push .\Babel.Obfuscator.nupkg --api-key TOKEN --source https://nuget.pkg.github.com/USERNAME/index.jsonIm obigen Befehl gilt:
TOKENist Ihr persönliches Zugriffstoken mit ausreichenden Berechtigungen zum Veröffentlichen von Paketen.USERNAMEist der Name Ihres persönlichen Kontos auf GitHub.
Um das NuGet-Paket von Babel Obfuscator aus dem Paketspeicher von GitHub zu installieren, fügen Sie Ihrem Projekt die folgende XML-Konfigurationsdatei hinzu:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget" value="https://www.nuget.org/api/v2" />
<add key="github" value="https://nuget.pkg.github.com/USERNAME/index.json" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<github>
<add key="Username" value="babelfornet" />
<add key="ClearTextPassword" value="%PACKAGES_TOKEN%" />
</github>
</packageSourceCredentials>
</configuration>In der obigen XML-Konfigurationsdatei gilt:
PACKAGES_TOKENist die Umgebungsvariable mit Ihrem persönlichen Zugriffstoken, das Leseberechtigungen für den Paketspeicher hatUSERNAMEist der Name Ihres persönlichen Kontos auf GitHub.
Sobald das NuGet-Paket von Babel Obfuscator installiert ist, können Sie GitHub Actions so konfigurieren, dass es das Paket in Ihrem Continuous-Integration-Workflow (CI) verwendet. Dazu erstellen Sie in Ihrem Repository eine YAML-Datei, die Ihren Workflow definiert. Die YAML-Datei legt die Schritte fest, die im CI-Prozess ausgeführt werden, einschließlich des Buildschritts.
Hier ein Beispiel für eine YAML-Datei:
name: dotnet package
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
dotnet-version: [ '8.0.x' ]
steps:
- uses: actions/checkout@v3
- name: Setup .NET Core SDK ${{ matrix.dotnet-version }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.dotnet-version }}
- name: Install dependencies
run: dotnet restore
env:
PACKAGES_TOKEN: ${{ secrets.PACKAGES_TOKEN }}
- name: Build
run: dotnet build --configuration Release --no-restore
env:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}Zusätzlich zur Paketreferenz müssen Sie in Ihrem CI-Workflow die Umgebungsvariable BABEL_LICENSE auf den Pfad Ihrer Lizenzdatei setzen. Fügen Sie dazu in Ihrer Workflow-Datei im Abschnitt env die folgende Zeile hinzu:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}Dabei enthält das Geheimnis BABEL_LICENSE_SECRET den Lizenzschlüssel. Er wird im Buildprozess an Babel Obfuscator übergeben, indem Sie in der Projektdatei die folgende Eigenschaft setzen.
<PropertyGroup>
<BabelLicense>$(BABEL_LICENSE)</BabelLicense>
</PropertyGroup>Das Geheimnis BABEL_LICENSE_SECRET erstellen Sie in den Einstellungen des GitHub-Repositorys unter Security > Secrets and variables > Actions.
Tragen Sie in die Variable BABEL_LICENSE_SECRET den Wert ein, der zum erhaltenen Lizenztyp gehört.
Floating-Lizenz
Setzen Sie BABEL_LICENSE_SECRET wie folgt auf den Floating-Lizenzschlüssel:
BABEL_LICENSE_SECRET=floating:UAZK7-GTO0E-98KR1-CKPUJDateilizenz
Setzen Sie BABEL_LICENSE_SECRET auf den Pfad der Lizenzdatei, zum Beispiel:
BABEL_LICENSE_SECRET=./Babel/babel.licensesInsgesamt zeigt dieses Beispiel, wie Sie Babel Obfuscator in GitHub Actions integrieren, und unterstreicht, wie wichtig es ist, den Zugriff auf vertrauliche Informationen wie Lizenzschlüssel abzusichern.