web-dev-qa-db-fra.com

Obtenir la branche actuelle et commettre hachage dans GitHub Action

Je veux construire une image Docker à l'aide d'une action GitHub, migration de TeamCity.

Dans le script de construction, je souhaite marquer l'image avec une combinaison de branche et de validation, par exemple. master.ad959de. Tests que localement, je reçois cette information comme celle-ci:

git_branch=`git symbolic-ref --short HEAD`
git_hash=`git rev-parse --short HEAD`
docker_version=${git_branch}.${git_hash}

C'est la partie pertinente de l'action GITUB:

name: CI
on: [Push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1

    - name: Create docker image
      run: ./docker-build.sh  

Exécution de ce script dans cette action GitHub entraîne cette erreur:

fatal: ref HEAD is not a symbolic ref

Comment puis-je générer une étiquette comme celle de l'action GitHithub?

13
Rüdiger Schulz

de tilisation de variables d'environnement

gitHub fournit deux variables utiles ici, vous devrez les traiter un peu pour obtenir les valeurs que vous désirez:

GITHUB_SHA: Le commit SHA qui a déclenché le flux de travail. Par exemple, ffac537e6cbbf934b08745a378932722df287a53.

GITHUB_REF: La branche ou la balise refait ce qui a déclenché le flux de travail. Par exemple, refs/heads/feature-branch-1. Si ni une branche ou une étiquette n'est disponible pour le type d'événement, la variable n'existera pas.

Les courtes valeurs peuvent être extraites comme ceci:

git_hash=$(git rev-parse --short "$GITHUB_SHA")
git_branch=${GITHUB_REF##*/}
5
Anthony Sottile

Vous pouvez l'obtenir de cette façon dans votre fichier sh -

BRANCH_NAME=$(echo $GITHUB_REF | cut -d'/' -f 3)
GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c1-8)
0
Abhinav Manchanda