excel-v1.26.0218.1523-win32 #66
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Notify Release | |
| on: | |
| release: | |
| types: [published] | |
| # Manual trigger for testing | |
| workflow_dispatch: | |
| inputs: | |
| release_name: | |
| description: 'Release name to simulate (e.g., component-v1.0.0)' | |
| required: true | |
| default: 'iocd-v10.0.1' | |
| is_prerelease: | |
| description: 'Is this a prerelease?' | |
| required: true | |
| type: boolean | |
| default: true | |
| jobs: | |
| notify-repositories: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Extract release information | |
| id: release-info | |
| run: | | |
| # Use workflow_dispatch inputs if available, otherwise use release event data | |
| if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
| RELEASE_NAME="${{ inputs.release_name }}" | |
| IS_PRERELEASE="${{ inputs.is_prerelease }}" | |
| else | |
| RELEASE_NAME="${{ github.event.release.tag_name }}" | |
| IS_PRERELEASE="${{ github.event.release.prerelease }}" | |
| fi | |
| # Extract component name (string before the first dash) | |
| COMPONENT_NAME=$(echo "$RELEASE_NAME" | cut -d'-' -f1) | |
| # Extract version (everything after -v) | |
| # Format: <component-name>-v<version> (e.g., iocd-v10.0.1-build.251127T2020 -> 10.0.1-build.251127T2020) | |
| VERSION=$(echo "$RELEASE_NAME" | sed 's/^[^-]*-v//') | |
| echo "release_name=$RELEASE_NAME" >> $GITHUB_OUTPUT | |
| echo "component_name=$COMPONENT_NAME" >> $GITHUB_OUTPUT | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "is_prerelease=$IS_PRERELEASE" >> $GITHUB_OUTPUT | |
| echo "Release Name: $RELEASE_NAME" | |
| echo "Component Name: $COMPONENT_NAME" | |
| echo "Version: $VERSION" | |
| echo "Is Prerelease: $IS_PRERELEASE" | |
| - name: Trigger workflows in other repositories | |
| uses: actions/github-script@v7 | |
| with: | |
| github-token: ${{ secrets.IOCD_SEED_COMPONENTS_WRITE }} | |
| script: | | |
| const releaseName = '${{ steps.release-info.outputs.release_name }}'; | |
| const componentName = '${{ steps.release-info.outputs.component_name }}'; | |
| const version = '${{ steps.release-info.outputs.version }}'; | |
| const isPrerelease = ${{ steps.release-info.outputs.is_prerelease }}; | |
| // List of repositories to notify (add your repository names here) | |
| const repositoriesToNotify = [ | |
| 'iocd-seed' | |
| ]; | |
| const owner = '${{ github.repository_owner }}'; | |
| for (const repo of repositoriesToNotify) { | |
| try { | |
| await github.rest.repos.createDispatchEvent({ | |
| owner: owner, | |
| repo: repo, | |
| event_type: 'component-release', | |
| client_payload: { | |
| release_name: releaseName, | |
| component_name: componentName, | |
| version: version, | |
| is_prerelease: isPrerelease, | |
| source_repo: '${{ github.repository }}' | |
| } | |
| }); | |
| console.log(`Successfully notified ${repo}`); | |
| } catch (error) { | |
| console.error(`Failed to notify ${repo}: ${error.message}`); | |
| } | |
| } |