Skip to Content
Nueva versión 12 disponible 🎉

GitHub Actions

GitHub Actions ofrece una forma cómoda de automatizar la ofuscación de su código, ya que permite definir las tareas de ofuscación como parte de su pipeline de compilación y despliegue.

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

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

En el comando anterior:

  • TOKEN es su token de acceso personal con privilegios suficientes para publicar paquetes.
  • USERNAME es 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_TOKEN es la variable de entorno que contiene su token de acceso personal con privilegios de lectura sobre el almacén
  • USERNAME es 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-CKPUJ

Licencia de archivo

Establezca BABEL_LICENSE_SECRET en la ruta del archivo de licencia, por ejemplo:

BABEL_LICENSE_SECRET=./Babel/babel.licenses

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

Last updated on