web-dev-qa-db-fra.com

Comment définir une variable env avec une expression bash dans les actions GitHub?

Dans les actions GitHub, je voudrais évaluer une expression bash puis l'attribuer à une variable d'environnement -

    - name: Tag image
      env:
        GITHUB_SHA_SHORT: ${{ $(echo $GITHUB_SHA | cut -c 1-6) }}
      ..do other things...

Mais cette tentative naïve a échoué. Selon les documents cela ne semble pas être pris en charge, mais une solution de contournement quelque peu propre conviendrait.

11
evilSnobu

En utilisant set-env dans une étape précédente fonctionne pour moi.

name: my workflow
on: Push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
    - name: Set env
      run: echo ::set-env name=GITHUB_SHA_SHORT::$(echo $GITHUB_SHA | cut -c 1-6)
    - name: Test
      run: echo $GITHUB_SHA_SHORT

Définissez une variable d'environnement: set-env::set-env name={name}::{value}

Crée ou met à jour une variable d'environnement pour toutes les actions s'exécutant ensuite dans un travail. L'action qui crée ou met à jour la variable d'environnement n'a pas accès à la nouvelle valeur, mais toutes les actions suivantes d'un travail y auront accès. Les variables d'environnement sont sensibles à la casse et vous pouvez inclure la ponctuation.

(De https://help.github.com/en/articles/development-tools-for-github-actions#set-an-environment-variable-set-env )

Il s'agit d'une autre façon de référencer la variable d'environnement dans les workflows.

    - name: Test
      run: echo ${{ env.GITHUB_SHA_SHORT }}
15
peterevans