Skip to content

add missing matrix json #90

add missing matrix json

add missing matrix json #90

name: Docker Image Publish Matrix (All)
on:
workflow_dispatch:
repository_dispatch:
types: [trigger-workflow]
push:
branches:
- master
- develop
tags:
- tc_nightly*
- tc_v*.*.*
pull_request:
branches: [ "master", "develop" ]
jobs:
discover-and-trigger:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Discover Workflows
id: discover_workflows
run: |
# Find all YAML files in the .github/workflows directory that start with "publish_docker_matrix_"
workflows=$(find .github/workflows -name 'publish_docker_matrix_*.yml' -exec basename {} \;)
echo "Found workflows: $workflows"
# Convert to JSON array
matrix_json=$(echo "$workflows" | tr ' ' '\n' | sed 's/^/"/;s/$/"/' | paste -sd, - | sed 's/^/[ /;s/$/ ]/')
echo "matrix_json=$matrix_json" >> $GITHUB_ENV
- name: Trigger Workflows
uses: actions/github-script@v6
env:
MATRIX_JSON: ${{ env.matrix_json }}
with:
script: |
const matrix = JSON.parse(process.env.MATRIX_JSON);
console.log("Triggering workflows: ", matrix);
const owner = context.repo.owner;
const repo = context.repo.repo;
const event_type = 'trigger-workflow'; // Ensure this matches your repository_dispatch trigger
for (const workflow of matrix) {
try {
await github.rest.repos.createDispatchEvent({
owner,
repo,
event_type,
client_payload: {
workflow: workflow,
branch: process.env.GITHUB_REF_NAME
}
});
console.log(`Triggered ${workflow}`);
} catch (error) {
console.error(`Failed to trigger ${workflow}:`, error);
}
}