Skip to Content
Nouvelle version 12 disponible 🎉

GitHub Actions

GitHub Actions permet d’automatiser l’obfuscation de votre code en définissant les tâches d’obfuscation dans votre pipeline de build et de déploiement.

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

L’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.json

Dans la commande ci-dessus :

  • TOKEN est votre jeton d’accès personnel, dotĂ© de privilèges suffisants pour publier des packages.
  • USERNAME est 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_TOKEN est la variable d’environnement qui contient votre jeton d’accès personnel, dotĂ© des privilèges de lecture sur le magasin
  • USERNAME est 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-CKPUJ

Licence fichier

Réglez BABEL_LICENSE_SECRET sur le chemin du fichier de licence, par exemple :

BABEL_LICENSE_SECRET=./Babel/babel.licenses

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

Last updated on