GitHub Actions
Este ejemplo presenta una aplicación WebApi básica que muestra cómo integrar Babel Obfuscator con GitHub Actions sin complicaciones. El propósito de esta integración es mostrar lo fácil que resulta añadir Babel Obfuscator a su proyecto mediante el paquete NuGet y cómo acceder de forma segura al archivo de licencia mediante los secretos de GitHub.
Además, este ejemplo explica cómo configurar NuGet para acceder directamente al almacén de paquetes de GitHub e instalar en su proyecto la dependencia del paquete NuGet de Babel Obfuscator. Siguiendo las instrucciones paso a paso, puede incorporar Babel Obfuscator a su proyecto y aprovechar sus funciones de ofuscación.
Para ayudarle a empezar, el código fuente del ejemplo está disponible en nuestro repositorio de GitHub, donde puede examinar el proceso de integración con más detalle.
git clone https://github.com/babelfornet/webapi-actions-example.gitPara integrar Babel Obfuscator con GitHub Actions hay que añadir al proyecto una referencia al paquete NuGet de Babel Obfuscator. Este paquete hace que Babel Obfuscator forme parte del proceso de compilación y ofusque el ensamblado de destino. El paquete se puede descargar e instalar directamente desde la fuente privada de NuGet de GitHub.
Para preparar el paquete NuGet de Babel Obfuscator en el almacén de paquetes de GitHub, debe crear un token de acceso con privilegios suficientes para publicar, instalar y eliminar paquetes NuGet del almacén de paquetes de GitHub (consulte la documentación de GitHub ). Después puede usar la herramienta CLI de dotnet para subir el paquete NuGet de Babel Obfuscator.
dotnet nuget push .\Babel.Obfuscator.nupkg --api-key TOKEN --source https://nuget.pkg.github.com/USERNAME/index.jsonEn el comando anterior:
TOKENes su token de acceso personal con privilegios suficientes para publicar paquetes.USERNAMEes el nombre de su cuenta personal de GitHub.
Para instalar el paquete NuGet de Babel Obfuscator desde el almacén de paquetes de GitHub, añada a su proyecto el siguiente archivo de configuración 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>En el archivo de configuración XML anterior:
PACKAGES_TOKENes la variable de entorno que contiene su token de acceso personal con privilegios de lectura sobre el almacénUSERNAMEes el nombre de su cuenta personal de GitHub.
Una vez instalado el paquete NuGet de Babel Obfuscator, puede configurar GitHub Actions para usarlo en su flujo de trabajo de integración continua (CI). Para ello, cree en su repositorio un archivo YAML que defina el flujo de trabajo. El archivo YAML especifica los pasos que se ejecutan durante el proceso de CI, incluido el paso de compilación.
Este es un ejemplo de archivo 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 }}Además de la referencia de paquete, debe establecer la variable de entorno BABEL_LICENSE en la ruta de su archivo de licencia en el flujo de trabajo de CI. Para ello, añada la línea siguiente al archivo del flujo de trabajo, en la sección env:
BABEL_LICENSE: ${{ secrets.BABEL_LICENSE_SECRET }}El secreto BABEL_LICENSE_SECRET contiene la clave de licencia, que se pasa a Babel Obfuscator durante el proceso de compilación mediante la siguiente propiedad del archivo de proyecto.
<PropertyGroup>
<BabelLicense>$(BABEL_LICENSE)</BabelLicense>
</PropertyGroup>Puede crear BABEL_LICENSE_SECRET en la configuración del repositorio de GitHub, en Security > Secrets and variables > Actions (seguridad, secretos y variables, acciones).
Actualice la variable BABEL_LICENSE_SECRET para guardar en ella el tipo de licencia que haya recibido.
Licencia flotante
Establezca BABEL_LICENSE_SECRET en la clave de la licencia flotante, de este modo:
BABEL_LICENSE_SECRET=floating:UAZK7-GTO0E-98KR1-CKPUJLicencia de archivo
Establezca BABEL_LICENSE_SECRET en la ruta del archivo de licencia, por ejemplo:
BABEL_LICENSE_SECRET=./Babel/babel.licensesEn conjunto, este ejemplo muestra cómo integrar Babel Obfuscator con GitHub Actions y pone de relieve la importancia de proteger el acceso a información confidencial como las claves de licencia.