1010 description : " Packages to deploy (JSON object with package info)"
1111 required : true
1212
13+ env :
14+ GITHUB_TOKEN : ${{ secrets.BOT }}
15+
1316jobs :
14- deploy :
17+ prepare :
1518 runs-on : ubuntu-latest
19+ outputs :
20+ package-list : ${{ steps.parse.outputs.package-list }}
21+ core-version : ${{ steps.parse.outputs.core-version }}
1622 steps :
17- - name : Show input
18- run : |
19- echo "Deploying version: ${{ github.event.inputs.version }}"
20- echo "Packages received"
21-
22- - name : Parse packages safely
23- id : parse_packages
23+ - name : Parse packages
24+ id : parse
2425 run : |
2526 # Create a temp file to avoid shell injection
2627 cat > packages.json << 'EOF'
@@ -31,31 +32,59 @@ jobs:
3132 cat packages.json
3233
3334 echo "Parsed packages:"
34- jq -r 'to_entries[] | "\(.key): Messages=[\(.value["release-message"] | join(", "))] Stability=\(.value["minimum-stability"] // "unknown") Type=\(.value.type // "unknown")"' packages.json
35+ jq -r 'to_entries[] | "\(.key): Messages=[\(.value["release-message"] | join(", "))] Stability=\(.value["minimum-stability"] // "unknown")"' packages.json
36+
37+ # Create package list for matrix
38+ package_list=$(jq -r 'keys | @json' packages.json)
39+ echo "package-list=$package_list" >> $GITHUB_OUTPUT
3540
36- # Create package list for later steps
37- jq -r 'keys[]' packages.json > package-list.txt
41+ # Set core version from input (exact version)
42+ echo "core-version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
3843
39- echo "Package names only:"
40- cat package-list.txt
44+ echo "Package list for matrix: $package_list"
45+
46+ split :
47+ needs : prepare
48+ runs-on : ubuntu-latest
49+ if : ${{ needs.prepare.outputs.package-list != '[]' }}
50+
51+ strategy :
52+ fail-fast : false
53+ matrix :
54+ package : ${{ fromJson(needs.prepare.outputs.package-list) }}
55+
56+ steps :
57+ - uses : actions/checkout@v4
4158
42- - name : Process each package
59+ - name : Replace core version in composer.json
60+ working-directory : packages/${{ matrix.package }}
4361 run : |
44- while IFS= read -r package; do
45- echo "Processing package: $package"
46-
47- # Get all info for this package
48- messages=$(jq -r --arg pkg "$package" '.[$pkg]["release-message"] | join("; ")' packages.json)
49- stability=$(jq -r --arg pkg "$package" '.[$pkg]["minimum-stability"] // "unknown"' packages.json)
50- pkg_type=$(jq -r --arg pkg "$package" '.[$pkg].type // "unknown"' packages.json)
51- visibility=$(jq -r --arg pkg "$package" '.[$pkg].visibility // "unknown"' packages.json)
52-
53- echo " Messages: $messages"
54- echo " Stability: $stability"
55- echo " Type: $pkg_type"
56- echo " Visibility: $visibility"
57-
58- # Your deployment logic here can now use all this information
59- # e.g., clone repo, create release with proper stability, etc.
62+ if [ -f composer.json ]; then
63+ echo "Updating moox/core version in ${{ matrix.package }} to ${{ needs.prepare.outputs.core-version }}"
64+ sed -i 's/"moox\/core": "\*"/"moox\/core": "${{ needs.prepare.outputs.core-version }}"/g' composer.json
6065
61- done < package-list.txt
66+ echo "Updated composer.json:"
67+ cat composer.json | grep "moox/core" || echo "No moox/core dependency found"
68+ else
69+ echo "No composer.json found in ${{ matrix.package }}"
70+ fi
71+
72+ - name : Commit changes
73+ working-directory : packages/${{ matrix.package }}
74+ run : |
75+ if [ -f composer.json ]; then
76+ git config --global user.name "mooxbot"
77+ git config --global user.email "[email protected] " 78+ git add composer.json
79+ git commit -m "Update moox/core dependency to ${{ needs.prepare.outputs.core-version }}" || echo "No changes to commit"
80+ fi
81+
82+ - name : Split package to separate repository
83+ uses :
" symplify/[email protected] " 84+ with :
85+ tag : " v${{ github.event.inputs.version }}"
86+ package_directory : " packages/${{ matrix.package }}"
87+ repository_organization : " mooxphp"
88+ repository_name : " ${{ matrix.package }}"
89+ user_name : " mooxbot"
90+
0 commit comments