@@ -60,21 +60,38 @@ jobs:
60
60
working-directory : test_apps/encore-app
61
61
dependency-versions : highest
62
62
63
- - working-directory : test_apps/encore-app
64
- run : pnpm install --ignore-workspace
65
-
66
63
- if : matrix.ux-packages-source == 'js-packages'
67
64
name : Install UX JS packages with a JS package manager
68
65
working-directory : test_apps/encore-app
69
66
run : |
70
67
PACKAGES_TO_INSTALL=''
71
- for PACKAGE in $(cd ../..; pnpm ls -r --json --depth -1 | jq 'map(select(.private != true))' | jq -c '.[]'); do
72
- PACKAGE_ABSOLUTE_PATH=$(echo $PACKAGE | jq -r '.path')
68
+ for PACKAGE_DATA in $(cd ../..; pnpm ls -r --json --depth -1 | jq 'map(select(.private != true))' | jq -c '.[]'); do
69
+ PACKAGE_NAME=$(echo $PACKAGE_DATA | jq -r '.name')
70
+ PACKAGE_ABSOLUTE_PATH=$(echo $PACKAGE_DATA | jq -r '.path')
73
71
PACKAGE_RELATIVE_PATH=$(realpath --relative-to=. "$PACKAGE_ABSOLUTE_PATH")
74
72
PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL file:$PACKAGE_RELATIVE_PATH"
73
+
74
+ # Manually replace "workspace:" constraints with the actual package version, it ensure packages can be installed with npm
75
+ jq -rc '[(.dependencies // {}) + (.devDependencies // {}) | to_entries[] | select(.value == "workspace:*") | .key][]' "$PACKAGE_ABSOLUTE_PATH/package.json" | while read -r PACKAGE_FROM_WORKSPACE ; do
76
+ # Extract the resolved version of the package from the workspace, e.g.: "link:../../../../assets"
77
+ RESOLVED_VERSION=$(pnpm ls --filter @symfony/ux-google-map --json | jq -r --arg PACKAGE_FROM_WORKSPACE $PACKAGE_FROM_WORKSPACE '
78
+ .[].dependencies // {} + .[].devDependencies // {} |
79
+ to_entries[] |
80
+ select(.value.from == $PACKAGE_FROM_WORKSPACE) |
81
+ .value.version
82
+ ')
83
+
84
+ # Replace "link:" (pnpm) with "file:" (compatible with npm)
85
+ RESOLVED_VERSION=${RESOLVED_VERSION/link:/file:}
86
+
87
+ # Replace the package "workspace:*" with the actual version
88
+ echo "Replacing \"$PACKAGE_FROM_WORKSPACE\" with \"$RESOLVED_VERSION\" in $PACKAGE_ABSOLUTE_PATH/package.json"
89
+ sed -i "s|\"$PACKAGE_FROM_WORKSPACE\": \"workspace:\*\"|\"$PACKAGE_FROM_WORKSPACE\": \"$RESOLVED_VERSION\"|g" "$PACKAGE_ABSOLUTE_PATH/package.json"
90
+ done;
75
91
done
92
+
76
93
echo "Installing packages: $PACKAGES_TO_INSTALL"
77
- pnpm add --save-dev $PACKAGES_TO_INSTALL
94
+ npm add --save-dev $PACKAGES_TO_INSTALL
78
95
79
96
- name : Ensure UX packages are installed from "${{ env.EXPECTED_PATTERN }}"
80
97
working-directory : test_apps/encore-app
97
114
98
115
- name : Ensure project can be built in dev mode
99
116
working-directory : test_apps/encore-app
100
- run : pnpm run dev
117
+ run : npm run dev
101
118
102
119
- name : Ensure project can be built in prod mode
103
120
working-directory : test_apps/encore-app
104
- run : pnpm run build
121
+ run : npm run build
0 commit comments