Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorBuildserverGitHub Actions

GitHub Actions

Mit GitHub Actions automatisieren Sie die Verschleierung Ihres Codes auf bequeme Weise: Sie legen die Verschleierungsaufgaben als Teil Ihrer Build- und Bereitstellungspipeline fest.

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.git

Um 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.json

Im obigen Befehl gilt:

  • TOKEN ist Ihr persönliches Zugriffstoken mit ausreichenden Berechtigungen zum Veröffentlichen von Paketen.
  • USERNAME ist 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_TOKEN ist die Umgebungsvariable mit Ihrem persönlichen Zugriffstoken, das Leseberechtigungen für den Paketspeicher hat
  • USERNAME ist 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-CKPUJ

Dateilizenz

Setzen Sie BABEL_LICENSE_SECRET auf den Pfad der Lizenzdatei, zum Beispiel:

BABEL_LICENSE_SECRET=./Babel/babel.licenses

Insgesamt 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.

Last updated on