6
votes

Action Github différente entre la version créée et publiée

comme les versions de Github sont en fait des balises Git , je souhaite mettre à jour automatiquement ma version package.json lorsqu'il y a une nouvelle version (et une nouvelle balise), avec Github Action .

Je sais que j'ai besoin de déclencher une job on: release , mais selon la documentation Github Actions, je ne sais pas si je dois déclencher une fois created , published , les deux ou tous?

Github dit:

Remarque: l' événement de release n'est pas déclenché pour draft versions draft .

Et j'ai créé deux pipelines: un on: release, type: created et un on: release, type: published .

Ensuite, j'ai créé un draft version, puis je l'ai publié .

Seul le pipeline published déclenché, et c'est à ce moment-là que j'ai publié la version.


3 Réponses :


0
votes

Une version peut être créée mais pas publiée. C'est le cas des versions préliminaires .

Je suggérerais d'aller avec le type de version published .


1 commentaires

Voir le lien dans ma question. Github dit " Remarque: l' événement de release n'est pas déclenché pour draft versions draft ". Mais je vais vérifier cela.



9
votes

Mon expérience a été le contraire de ce qui a été décrit ici sur le forum . Lors du test:

  • Si la version est créée à partir du bouton «Rédiger une nouvelle version» sur la page /releases , les deux événements se déclenchent, car la version passe de l'état «brouillon» à «publié».
  • Si la version est créée par des scripts comme release-it , en contournant l'étape "brouillon" et en devenant directement "publiée", seule release:published déclenchera

Donc, apparemment, une version peut être publiée sans être créée. Bizarre en effet. J'irais avec published .


0 commentaires

1
votes

Si vous essayez de capturer la création et la publication d'une version déclenchée à partir d'une action Github dans un autre flux de travail, cela ne fonctionnera pas.

La solution consiste à unifier les deux flux de travail en un seul afin qu'une fois la version créée, le flux de travail suivant se poursuive.

Source: https://twitter.com/ethomson/status/1183838077166477316

Exemple:

name: Create Release and Publish

# Trigger the create release workflow
on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    name: Create Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          draft: false
          prerelease: false

  publish-gpr:
    needs: release # After release is created then run the second workflow
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 10
          registry-url: https://npm.pkg.github.com/
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}


1 commentaires

Merci! Ce n'est pas la réponse mais c'était l'un de mes problèmes