GitHub Actions
Questo esempio presenta una semplice applicazione WebApi che mostra come integrare senza difficoltà Babel Obfuscator con GitHub Actions. Lo scopo dell’integrazione è mostrare con quanta facilità Babel Obfuscator si aggiunge al tuo progetto tramite il pacchetto NuGet e come accedere in modo sicuro al file di licenza tramite i segreti di GitHub.
L’esempio fornisce inoltre indicazioni utili su come configurare NuGet per accedere direttamente all’archivio dei pacchetti di GitHub e installare nel tuo progetto la dipendenza dal pacchetto NuGet di Babel Obfuscator. Seguendo le istruzioni passo per passo puoi adottare facilmente Babel Obfuscator nel tuo progetto e sfruttare le sue potenti capacità di offuscamento.
Per aiutarti a iniziare, il codice sorgente dell’esempio è disponibile nel nostro repository GitHub, dove puoi esaminare l’integrazione più in dettaglio.
git clone https://github.com/babelfornet/webapi-actions-example.gitPer integrare Babel Obfuscator con GitHub Actions devi aggiungere al tuo progetto un riferimento al pacchetto NuGet di Babel Obfuscator. Il pacchetto fa entrare Babel Obfuscator nel processo di build e offusca l’assembly target. Può essere scaricato e installato direttamente dal feed NuGet privato di GitHub.
Per predisporre il pacchetto NuGet di Babel Obfuscator nell’archivio dei pacchetti di GitHub devi creare un token di accesso con privilegi sufficienti per pubblicare, installare ed eliminare pacchetti NuGet dall’archivio dei pacchetti di GitHub (vedi la documentazione di GitHub ). Puoi poi usare lo strumento da riga di comando dotnet per caricare il pacchetto NuGet di Babel Obfuscator.
dotnet nuget push .\Babel.Obfuscator.nupkg --api-key TOKEN --source https://nuget.pkg.github.com/USERNAME/index.jsonNel comando precedente:
TOKENè il tuo token di accesso personale con privilegi sufficienti per pubblicare pacchetti.USERNAMEè il nome del tuo account personale su GitHub.
Per installare il pacchetto NuGet di Babel Obfuscator dall’archivio dei pacchetti di GitHub, aggiungi al tuo progetto il seguente file di configurazione XML:
<?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>Nel file di configurazione XML precedente:
PACKAGES_TOKENè la variabile d’ambiente che contiene il tuo token di accesso personale con i privilegi di lettura dall’archivioUSERNAMEè il nome del tuo account personale su GitHub.
Dopo aver installato il pacchetto NuGet di Babel Obfuscator, puoi configurare GitHub Actions per usarlo nel tuo workflow di integrazione continua (CI). A questo scopo crea nel repository un file YAML che definisce il workflow. Il file YAML specifica i passi eseguiti durante il processo di CI, compreso il passo di build.
Ecco un esempio di file YAML:
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 }}Oltre al riferimento al pacchetto, nel workflow di CI devi anche impostare la variabile d’ambiente BABEL_LICENSE sul percorso del tuo file di licenza. Puoi farlo aggiungendo la riga seguente al file del workflow, nella sezione env:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}Il segreto BABEL_LICENSE_SECRET contiene la chiave di licenza, che viene passata a Babel Obfuscator durante il processo di build impostando la seguente proprietà nel file di progetto.
<PropertyGroup>
<BabelLicense>$(BABEL_LICENSE)</BabelLicense>
</PropertyGroup>Puoi creare BABEL_LICENSE_SECRET nelle impostazioni del repository GitHub, in Security > Secrets and variables > Actions.
Aggiorna la variabile BABEL_LICENSE_SECRET in base al tipo di licenza ricevuto.
Licenza flottante
Imposta BABEL_LICENSE_SECRET sulla chiave della licenza flottante, come segue:
BABEL_LICENSE_SECRET=floating:UAZK7-GTO0E-98KR1-CKPUJLicenza a file
Imposta BABEL_LICENSE_SECRET sul percorso del file di licenza, per esempio:
BABEL_LICENSE_SECRET=./Babel/babel.licensesNel complesso, questo esempio mostra come integrare Babel Obfuscator con GitHub Actions e sottolinea l’importanza di proteggere l’accesso a informazioni sensibili come le chiavi di licenza.