Skip to content

Trigger release

Trigger release #8

name: Trigger release
on:
workflow_dispatch:
workflow_run:
workflows: ["Sync repo"]
types:
- completed
jobs:
check:
runs-on: ubuntu-latest
outputs:
source_tag: ${{ steps.sourcetag.outputs.tag }}
create_release: ${{ steps.rel-chk.outputs.create_release }}
steps:
- name: Find latest tag of source repo
uses: oprypin/find-latest-tag@v1
with:
repository: casey/just
regex: '^\d+\.\d+\.\d+$'
releases-only: true
id: sourcetag
- name: Find latest tag of target repo
uses: oprypin/find-latest-tag@v1
with:
repository: gnpaone/rust-just
releases-only: true
id: targettag
- run: npm install semver
- name: Check for new release
uses: actions/github-script@v7
id: rel-chk
with:
script: |
const semver = require('semver');
const source_tag = `${{ steps.sourcetag.outputs.tag }}`;
const target_tag = `${{ steps.targettag.outputs.tag }}`;
core.setOutput('create_release', semver.gt(source_tag, target_tag));
release:
runs-on: ubuntu-latest
if: needs.check.outputs.create_release == 'true'
needs: check
outputs:
copy_release: ${{ steps.copy_release.outcome }}
steps:
- name: Copy Release
id: copy_release
uses: marchbold/copy-release-to-repository-action@v2
with:
source_repo: 'casey/just'
destination_repo: 'gnpaone/rust-just'
github_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ needs.check.outputs.source_tag }}
platform-release:
runs-on: ubuntu-latest
if: needs.release.outputs.copy_release == 'success'
needs: release
strategy:
matrix:
events: ['npm-release', 'pip-release']
steps:
- name: Trigger release event
uses: peter-evans/repository-dispatch@v3
with:
event-type: ${{ matrix.events }}