@@ -60,35 +60,56 @@ jobs:
6060            working-directory : test_apps/encore-app 
6161            dependency-versions : highest 
6262
63+         - name : Manually replacing "workspace:*" references 
64+           run : | 
65+             for PACKAGE_DATA in $(cd ../..; pnpm ls -r --json --depth -1 | jq 'map(select(.private != true))' | jq -c '.[]'); do 
66+               PACKAGE=$(echo $PACKAGE_DATA | jq -r '.name') 
67+               PACKAGE_PATH=$(echo $PACKAGE_DATA | jq -r '.path') 
68+ 
69+               echo "Searching for \"workspace:*\" references in $PACKAGE_PATH/package.json" 
70+ 
71+               # Manually replace "workspace:" constraints with the actual package version, it ensure packages can be installed with npm 
72+               jq -rc '[(.dependencies // {}) + (.devDependencies // {}) | to_entries[] | select(.value == "workspace:*") | .key][]' "$PACKAGE_PATH/package.json" | while read -r PACKAGE_FROM_WORKSPACE ; do 
73+                 # Extract the resolved version of the package from the workspace, e.g.: "link:../../../../assets" 
74+                 echo "Found \"workspace:*\" reference to \"$PACKAGE_FROM_WORKSPACE\"" 
75+ 
76+                 PACKAGE_FROM_WORKSPACE_PATH=$(cd ../..; pnpm ls --filter $PACKAGE_FROM_WORKSPACE --json --depth -1 | jq -r '.[].path') 
77+                 echo "Found package \"$PACKAGE_FROM_WORKSPACE\" in $PACKAGE_FROM_WORKSPACE_PATH/package.json" 
78+ 
79+                 echo "Replacing \"$PACKAGE_FROM_WORKSPACE\" with \"file:$PACKAGE_FROM_WORKSPACE_PATH\" in $PACKAGE_PATH/package.json" 
80+                 sed -i "s|\"$PACKAGE_FROM_WORKSPACE\": \"workspace:\*\"|\"$PACKAGE_FROM_WORKSPACE\": \"file:$PACKAGE_FROM_WORKSPACE_PATH\"|g" "$PACKAGE_PATH/package.json" 
81+               done; 
82+             done 
83+ 
6384         - working-directory : test_apps/encore-app 
64-           run : pnpm  install --ignore-workspace 
85+           run : npm  install
6586
6687        - if : matrix.ux-packages-source == 'js-packages' 
6788          name : Install UX JS packages with a JS package manager 
6889          working-directory : test_apps/encore-app 
6990          run : | 
7091            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') 
73-               PACKAGE_RELATIVE_PATH=$(realpath --relative-to=. "$PACKAGE_ABSOLUTE_PATH") 
74-               PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL file:$PACKAGE_RELATIVE_PATH" 
92+             for PACKAGE_DATA in $(cd ../..; pnpm ls -r --json --depth -1 | jq 'map(select(.private != true))' | jq -c '.[]'); do 
93+               PACKAGE_PATH=$(echo $PACKAGE_DATA | jq -r '.path') 
94+               PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL file:$(realpath --relative-to=. "$PACKAGE_PATH")" 
7595            done 
96+ 
7697            echo "Installing packages: $PACKAGES_TO_INSTALL" 
77-             pnpm  add --save-dev $PACKAGES_TO_INSTALL 
98+             npm  add --save-dev $PACKAGES_TO_INSTALL 
7899
79100         - name : Ensure UX packages are installed from "${{ env.EXPECTED_PATTERN }}" 
80101          working-directory : test_apps/encore-app 
81102          run : | 
82103            for PACKAGE in $(cat package.json | jq -c '(.dependencies // {}) + (.devDependencies // {}) | to_entries[] | select(.key | startswith("@symfony/ux-")) | {name: .key, version: .value}'); do 
83-               PACKAGE_NAME =$(echo $PACKAGE | jq -r '.name') 
104+               PACKAGE =$(echo $PACKAGE | jq -r '.name') 
84105              PACKAGE_VERSION=$(echo $PACKAGE | jq -r '.version') 
85106
86-               echo -n "Checking $PACKAGE_NAME @$PACKAGE_VERSION..." 
107+               echo -n "Checking $PACKAGE @$PACKAGE_VERSION..." 
87108              if [[ $PACKAGE_VERSION == $EXPECTED_PATTERN* ]]; then 
88109                echo " OK" 
89110              else 
90111                echo " KO" 
91-                 echo "The package version of $PACKAGE_NAME  must starts with the pattern (e.g.: $EXPECTED_PATTERN), got $PACKAGE_VERSION instead." 
112+                 echo "The package version of $PACKAGE  must starts with the pattern (e.g.: $EXPECTED_PATTERN), got $PACKAGE_VERSION instead." 
92113                exit 1 
93114              fi 
94115            done; 
97118
98119        - name : Ensure project can be built in dev mode 
99120          working-directory : test_apps/encore-app 
100-           run : pnpm  run dev
121+           run : npm  run dev
101122
102123        - name : Ensure project can be built in prod mode 
103124          working-directory : test_apps/encore-app 
104-           run : pnpm  run build
125+           run : npm  run build
0 commit comments