0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lección

Variables de entorno y secretos

Aprenda a gestionar de forma segura la información confidencial y las configuraciones específicas de cada entorno en GitHub Actions.

Variables de entorno y secretos es una lección gratuita de CI/CD with GitHub Actions & DevOps Pipelines en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CI/CD with GitHub Actions & DevOps Pipelines, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CI/CD with GitHub Actions & DevOps Pipelines incluye 4 lecciones en total.

Variables de entorno y secretos: conceptos básicos

¡Le damos la bienvenida a la lección 3! En CI/CD, a menudo necesita configurar sus pipelines con valores dinámicos o información confidencial.

Aquí es donde las variables de entorno y los secretos se vuelven indispensables. Permiten que sus flujos de trabajo se adapten a distintos escenarios y gestionen datos confidenciales de forma segura.

¿Por qué utilizarlos en CI/CD?

Imagine que despliega en distintos entornos (desarrollo, staging y producción) o que se conecta a servicios externos mediante claves de API.

  • Flexibilidad: Las variables de entorno permiten cambiar el comportamiento sin modificar el archivo del flujo de trabajo.
  • Seguridad: Los secretos protegen datos confidenciales, como contraseñas y tokens de API, para evitar que queden expuestos.
  • Reutilización: Defina las configuraciones una sola vez y utilícelas en varios trabajos o pasos.

Variables de entorno en Actions

Una variable de entorno es un valor con un nombre dinámico que puede afectar al comportamiento de los procesos en ejecución. En GitHub Actions, son fundamentales para hacer que sus flujos de trabajo sean configurables.

Puede definir sus propias variables de entorno o utilizar las muchas variables integradas que proporciona GitHub Actions.

Variables de entorno integradas de GitHub Actions

GitHub Actions proporciona automáticamente muchas variables de entorno predefinidas y útiles. Estas le ofrecen información contextual sobre el repositorio, la ejecución del flujo de trabajo y mucho más.

Por ejemplo, GITHUB_SHA es el hash del commit, y GITHUB_REF es el nombre de la rama o etiqueta que activó el flujo de trabajo.

Puede acceder a ellas mediante el objeto de contexto github en las expresiones o directamente como variables del shell si se asignan a env.

name: Print Context Variables
on: [push]
jobs:
  display_info:
    runs-on: ubuntu-latest
    steps:
      - name: Show commit SHA
        run: echo "Commit SHA: ${{ github.sha }}"
      - name: Show branch/tag ref
        run: echo "Ref: ${{ github.ref }}"

Variables de entorno personalizadas: ámbito del flujo de trabajo

Puede definir sus propias variables de entorno en el nivel del flujo de trabajo o del trabajo. Las variables definidas en el nivel del flujo de trabajo están disponibles para todos los trabajos y pasos de ese flujo.

Utilice la palabra clave env en el nivel superior del archivo del flujo de trabajo para establecerlas.

name: Workflow-level Env Var
on: [push]
env:
  GREETING_MESSAGE: "Hello from Workflow!"
jobs:
  my_job:
    runs-on: ubuntu-latest
    steps:
      - name: Access workflow variable
        run: echo "${{ env.GREETING_MESSAGE }}" # Access via env context
      - name: Access workflow variable (shell)
        env:
          MY_VAR_IN_SHELL: ${{ env.GREETING_MESSAGE }}
        run: echo "$MY_VAR_IN_SHELL" # Access as shell variable

Variables de entorno personalizadas: ámbito del trabajo y del paso

Para necesidades más específicas, defina variables de entorno en el nivel del trabajo o del paso. Una variable definida para un trabajo está disponible para todos sus pasos, mientras que una variable definida en el nivel del paso solo está disponible para ese paso.

Esto permite controlar la configuración con precisión.

name: Job & Step-level Env Vars
on: [push]
jobs:
  my_job:
    runs-on: ubuntu-latest
    env:
      JOB_VAR: "Value for this job"
    steps:
      - name: Access Job-level variable
        run: echo "Job Var: ${{ env.JOB_VAR }}"
      - name: Step-specific variable
        env:
          STEP_VAR: "Value for this step"
        run: echo "Step Var: ${{ env.STEP_VAR }}"
      - name: Try to access step var in another step
        run: echo "Trying to access: ${{ env.STEP_VAR }}" || true # Will be empty

Introducción a los secretos de GitHub

Las variables de entorno son ideales para datos no confidenciales, pero ¿qué ocurre con información confidencial como claves de API, contraseñas de bases de datos o tokens privados?

Aquí entran en juego los secretos de GitHub. Permiten almacenar información confidencial de forma segura y acceder a ella desde los flujos de trabajo sin exponerla en el código ni en los registros del repositorio.

  • Cifrados: GitHub los almacena de forma segura.
  • Ocultos: Se ocultan automáticamente en los registros de los flujos de trabajo.
  • Acceso controlado: Solo están disponibles para flujos de trabajo específicos.

Creación de secretos de GitHub

Los secretos se crean y gestionan desde la configuración del repositorio o de la organización en GitHub, no directamente en los archivos del flujo de trabajo.

  1. Vaya a Settings de su repositorio.
  2. Vaya a Secrets and variables > Actions.
  3. Haga clic en New repository secret (o en el secreto de organización si necesita un ámbito más amplio).
  4. Proporcione un Name (por ejemplo, MY_API_KEY) y pegue el Value.

Una vez guardado, no podrá volver a ver el valor de un secreto; solo podrá actualizarlo o eliminarlo.

Uso de secretos en los flujos de trabajo

Para utilizar un secreto, haga referencia a él mediante el objeto de contexto secrets en su flujo de trabajo, de forma similar a como utiliza env para las variables de entorno.

GitHub oculta automáticamente los secretos en los registros y sustituye sus valores por *** para evitar exposiciones accidentales.

name: Use a Secret Demo
on: [push]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Display a secret (redacted)
        run: echo "My secret key is: ${{ secrets.MY_API_KEY }}"
        # GitHub Actions automatically redacts the value in logs.
      - name: Pass secret to an environment variable
        env:
          API_KEY_ENV: ${{ secrets.MY_API_KEY }}
        run: echo "API Key in env: $API_KEY_ENV"

Buenas prácticas de seguridad para secretos

Gestionar los secretos de forma segura es fundamental para la integridad de su pipeline de CI/CD. Siga siempre estas directrices:

  • Mínimo privilegio: Conceda acceso a los secretos únicamente cuando sea absolutamente necesario.
  • Nunca los incluya directamente: No inserte secretos directamente en los archivos del flujo de trabajo ni en ningún código del repositorio.
  • Evite registrarlos: Aunque GitHub los oculta, evite comandos echo personalizados que puedan revelar accidentalmente parte de los secretos.
  • Rótelos con regularidad: Cambie los secretos periódicamente para minimizar el riesgo de que se vean comprometidos.
  • Específicos del entorno: Utilice secretos diferentes para los entornos de desarrollo, staging y producción.

Comprobación rápida: variables de entorno frente a secretos

¿Qué afirmación describe correctamente una diferencia o característica clave de las variables de entorno y los secretos de GitHub Actions?

Repaso: configuraciones seguras

¡Excelente! Ha aprendido a administrar correctamente las configuraciones de sus flujos de trabajo de GitHub Actions.

  • Las variables de entorno le permiten inyectar datos dinámicos no confidenciales en las ejecuciones del flujo de trabajo, con la posibilidad de adaptarlos a nivel del flujo de trabajo, del trabajo o del paso.
  • Los secretos son fundamentales para gestionar de forma segura información confidencial, como las claves de API, y garantizar que permanezca cifrada y fuera de su código público.
  • Al trabajar con secretos, siga siempre las prácticas recomendadas de seguridad para proteger sus implementaciones frente a vulnerabilidades.

Dominar estos conceptos garantiza que sus canalizaciones de CI/CD sean flexibles y seguras.

Preguntas frecuentes

¿La lección «Variables de entorno y secretos» es gratis?

Sí — el texto completo de «Variables de entorno y secretos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CI/CD with GitHub Actions & DevOps Pipelines, actualiza a CoddyKit PRO. El curso de CI/CD with GitHub Actions & DevOps Pipelines incluye 4 lecciones en total.

¿Qué aprenderé en «Variables de entorno y secretos»?

Aprenda a gestionar de forma segura la información confidencial y las configuraciones específicas de cada entorno en GitHub Actions. Practicas CI/CD with GitHub Actions & DevOps Pipelines con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar CI/CD with GitHub Actions & DevOps Pipelines?

No se requiere experiencia previa. CI/CD with GitHub Actions & DevOps Pipelines en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Variables de entorno y secretos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de CI/CD with GitHub Actions & DevOps Pipelines?

Sí. Cada lección de CI/CD with GitHub Actions & DevOps Pipelines incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Introducción al despliegue continuo
  2. Despliegue en un entorno de staging
  3. Variables de entorno y secretos
  4. Despliegue en producción con puertas de aprobación
← Volver a CI/CD with GitHub Actions & DevOps Pipelines