J'essaie de créer un flux de travail GitHub qui sera déclenché lorsqu'un autre référentiel crée une nouvelle version.
Dans la documentation, il y a le paragraphe: on.event_name.types
où event_name
sera release
.
La question est: existe-t-il un moyen de faire référence à l'événement release
d'un autre référentiel?
Existe-t-il un moyen de faire référence à l'événement de publication d'un autre référentiel?
Assez sûr que cette fonctionnalité n'existe pas.
Si vous avez accès au référentiel créant la version, vous pouvez appeler un événement de webhook pour déclencher un on: repository_dispatch
workflow à exécuter dans un autre référentiel. repository-dispatch l'action peut aider dans ce cas.
Si vous n'avez pas accès au référentiel créant la version (ce qui, je suppose, est le cas ici), ce serait ma suggestion. Tout d'abord, créez le workflow suivant qui vérifie périodiquement la balise de version de sortie du référentiel que vous souhaitez suivre. Si elle diffère de la version finale que vous avez actuellement enregistrée dans votre référentiel, la nouvelle version sera validée.
Notez que vous devez d'abord préparer le fichier de destination (par exemple, release-versions/swagger-ui-latest.txt) pour que la vérification des fichiers modifiés fonctionne. De plus, vous devez utiliser un jeton de portée repo
au lieu de la valeur par défaut GITHUB_TOKEN
. Pour plus de détails à ce sujet, voir Push to Origin from GitHub action
name: Get latest release version
on:
schedule:
- cron: '0 10 * * *'
jobs:
get-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
- name: Fetch release version
run: |
curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | \
jq -r ".tag_name" > release-versions/swagger-ui-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Commit latest release version
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Your Name'
git config --global user.email '[email protected]'
git commit -am "New release version"
git Push
Vous pouvez ensuite créer un deuxième flux de travail qui ne s'exécute que lorsqu'il voit des modifications dans le répertoire release-versions
.
on:
Push:
paths:
- 'release-versions/*'
Dans ce flux de travail, vous pouvez utiliser la version enregistrée pour récupérer les actifs dont vous avez besoin et effectuer le traitement dont vous avez besoin.