No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de GitHub Actions

Curso de GitHub Actions

Juan José Torres

Juan José Torres

Secrets: almacena información confidencial para reutilizar en un workflow

10/18
Recursos

Este tutorial aborda las funciones de leverage variables y secretos en sus workflow files de GitHub. Uso de estas funciones brinda a los desarrolladores el poder de guardar valores previamente utilizados, ya sean sensibles o no, para acceso eficiente.

¿Cómo configurar variables en GitHub?

Para configurar las variables, necesitamos un nuevo workflow file, en este caso llamado variables.yml. Podemos insertar valores para un día específico de la semana o saludar a diferentes individuos utilizando environment variables. Además, podemos acceder a estas variables de dos maneras, ya sea usando el símbolo del dólar seguido del nombre de la variable o usando el context env.

```markdown name: Custom Workflow on: workflow_dispatch:

env: DIA_DE_LA_SEMANA: Lunes

jobs: Saludo_variables: runs-on: ubuntu-latest env: SALUDO: Hola steps: - name: Echo de saludo y nombre run: echo "${{ env.SALUDO }} ${{ env.NOMBRE }}, hoy es $DIA_DE_LA_SEMANA" ```

¿Qué son los Secretos en GitHub y cómo configurarlos?

En la sección de Configuración de nuestro repositorio, además de las variables, encontramos una opción para configurar los secretos. Los secretos son similares a las variables, pero suelen contener datos más sensibles, como las contraseñas de las cuentas que necesitamos para configurar una acción, o un valor de configuración que si se filtra podría poner en peligro la seguridad de nuestra aplicación o usuarios.

```markdown name: Custom Workflow Secret on: workflow_dispatch:

jobs: Saludo_secretos: runs-on: ubuntu-latest steps: - name: Echo de saludo con secreto run: echo "${{ secrets.SALUDO }} ${{ secrets.NOMBRE }}, tu contraseña secreta es ${{ secrets.CONTRASEÑA }}" ```

¿Cómo se utilizan las Variables y Secretos en Producto?

Las variables y secretos varían en sus usos. A diferencia de los secretos, las variables son utilizadas para guardar valores que no son sensibles. Mientras tanto, los secretos resguardan información altamente sensible, como contraseñas o credenciales.

Un ejemplo real de cómo se utilizan los secretos podría ser un escenario donde necesitemos acceder a los recursos de nuestras cuentas de AWS. En tal escenario, utilizaríamos un secreto para guardar las credenciales de esas cuentas, permitiendo así un acceso seguro y sin contratiempos.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

name: Saludo usando variables y secretos
on:
  workflow_dispatch
env:
  DIA_DE_SEMANA : Lunes
jobs:
  saludo-variables:
    runs-on: ubuntu-latest
    env:
      SALUDO: Hola
    steps:
      - name: Saludo variables
        run: echo "$SALUDO, ${{ vars.NOMBRE }}. Hoy es $DIA_DE_SEMANA"
  saludo-secretos:
    runs-on: ubuntu-latest
    steps:
      - name: Saludo secretos
        run: echo "$SALUDO, ${{ vars.NOMBRE }}. Tu contraseña es ${{ secrets.CONTRASENA }}!"

Comparto workflow para cargar un archivo html a un bucket de AWS S3

name: Upload a file to S3
run-name: Learning about githubActions
on:
  push:
    branches:
    - master
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@master
      - uses: jakejarvis/s3-sync-action@master
        with:
          args: --acl public-read --follow-symlinks --delete --exclude '.git*/*'
        env:
          AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Lo único que echo en falta es que muestre los logs del workflow para ver el resultado...
les comparto mi ejercicio: ```js name: my_secret_variable run-name: aprendiendo variables secretas on: [workflow_dispatch] env: current_password: 12345 jobs: secret_variable: runs-on: ubuntu-latest steps: - name: my_password run: | if [ ${{ secrets.PASSWORD }} == $current_password ]; then echo "The $current_password is my password!" else echo "$current_password not is my password" fi ```

Secrets

name: Vars y Secrets
on: 
  workflow_dispatch
env:
  fruta1: Manzana
  fruta2: Pera
  fruta3: Frutilla
jobs:
  Frutas:
    runs-on: ubuntu-latest
    steps:
      - name: echo frutas
        run: |
          echo "La $fruta1 es roja, la $fruta2 es verde, la $fruta3 es roja y el ${{ vars.FRUTA4 }} es amarillo"
          echo "La Fruta secreta es el ${{ secrets.FRUTASECRET }} y es de color verde"

Si se tienen muchas variables de entorno delicadas podríamos correr un script que las cargue, pero esto implicaría tenerlas en el repo cargadas, es inviable (supongo, si conocen otra manera me encantaría leerla), sin embargo, para pasarlas desde SECRETS a .env si es viable esta opción.