GitHub Actions
Cet exemple présente une application WebApi simple qui montre comment intégrer Babel Obfuscator à GitHub Actions. Il a pour but de montrer comment ajouter Babel Obfuscator à votre projet au moyen du package NuGet et comment accéder de façon sécurisée au fichier de licence grâce aux secrets GitHub.
Cet exemple explique également comment configurer NuGet pour accéder directement au magasin de packages GitHub et installer dans votre projet la dépendance du package NuGet Babel Obfuscator. En suivant les instructions pas à pas, vous pouvez mettre en œuvre Babel Obfuscator dans votre projet et tirer parti de ses fonctionnalités d’obfuscation.
Pour vous aider à démarrer, le code source de l’exemple est disponible dans un dépôt GitHub de Babel, ce qui vous permet d’étudier l’intégration plus en détail.
git clone https://github.com/babelfornet/webapi-actions-example.gitL’intégration de Babel Obfuscator à GitHub Actions nécessite d’ajouter à votre projet une référence au package NuGet Babel Obfuscator. Grâce à ce package, Babel Obfuscator fait partie de votre processus de build et obfusque l’assembly cible. Le package peut être téléchargé et installé directement depuis le flux NuGet privé de GitHub.
Pour mettre en place le package NuGet Babel Obfuscator dans le magasin de packages GitHub, vous devez créer un jeton d’accès disposant de privilèges suffisants pour publier, installer et supprimer des packages NuGet dans ce magasin (voir la documentation GitHub ). Vous pouvez ensuite utiliser l’outil CLI dotnet pour y envoyer le package NuGet Babel Obfuscator.
dotnet nuget push .\Babel.Obfuscator.nupkg --api-key TOKEN --source https://nuget.pkg.github.com/USERNAME/index.jsonDans la commande ci-dessus :
TOKENest votre jeton d’accès personnel, doté de privilèges suffisants pour publier des packages.USERNAMEest le nom de votre compte personnel sur GitHub.
Pour installer le package NuGet Babel Obfuscator depuis le magasin de packages GitHub, ajoutez le fichier de configuration XML suivant à votre projet :
<?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>Dans le fichier de configuration XML ci-dessus :
PACKAGES_TOKENest la variable d’environnement qui contient votre jeton d’accès personnel, doté des privilèges de lecture sur le magasinUSERNAMEest le nom de votre compte personnel sur GitHub.
Une fois le package NuGet Babel Obfuscator installé, vous pouvez configurer GitHub Actions pour l’utiliser dans votre flux de travail d’intégration continue (CI). Pour cela, créez dans votre dépôt un fichier YAML qui définit votre flux de travail. Ce fichier indique les étapes exécutées pendant le processus de CI, dont l’étape de build.
Voici un exemple de fichier 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 }}Outre la référence de package, vous devez aussi régler la variable d’environnement BABEL_LICENSE sur le chemin de votre fichier de licence dans votre flux de travail de CI. Pour cela, ajoutez la ligne suivante à votre fichier de flux de travail, dans la section env :
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}Le secret BABEL_LICENSE_SECRET contient la clé de licence, transmise à Babel Obfuscator pendant le processus de build au moyen de la propriété suivante du fichier de projet.
<PropertyGroup>
<BabelLicense>$(BABEL_LICENSE)</BabelLicense>
</PropertyGroup>Vous pouvez créer BABEL_LICENSE_SECRET dans les paramètres du dépôt GitHub, sous Security > Secrets and variables > Actions.
Renseignez la variable BABEL_LICENSE_SECRET en fonction du type de licence que vous avez reçu.
Licence flottante
Réglez BABEL_LICENSE_SECRET sur la clé de licence flottante, comme suit :
BABEL_LICENSE_SECRET=floating:UAZK7-GTO0E-98KR1-CKPUJLicence fichier
Réglez BABEL_LICENSE_SECRET sur le chemin du fichier de licence, par exemple :
BABEL_LICENSE_SECRET=./Babel/babel.licensesDans l’ensemble, cet exemple montre comment intégrer Babel Obfuscator à GitHub Actions et souligne l’importance de sécuriser l’accès aux informations sensibles telles que les clés de licence.