@@ -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