Skip to content

Commit 9e8e7df

Browse files
Update split.yml
1 parent f4a07e9 commit 9e8e7df

File tree

1 file changed

+60
-31
lines changed

1 file changed

+60
-31
lines changed

.github/workflows/split.yml

Lines changed: 60 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ on:
1010
description: "Packages to deploy (JSON object with package info)"
1111
required: true
1212

13+
env:
14+
GITHUB_TOKEN: ${{ secrets.BOT }}
15+
1316
jobs:
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+
user_email: "[email protected]"

0 commit comments

Comments
 (0)