List elements should be batched #4221
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish & Install | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| - minor | |
| - major | |
| paths: | |
| - 'packages/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| pull_request: | |
| branches: | |
| - master | |
| - major | |
| - minor | |
| paths: | |
| - 'packages/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| defaults: | |
| run: | |
| shell: bash | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| publish_install: | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| node-version: [20.x, 22.x, 24.x] | |
| fail-fast: false | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| - name: Install Verdaccio | |
| run: | | |
| npm install -g verdaccio | |
| npm install -g wait-on | |
| tmp_registry_log=`mktemp` | |
| mkdir -p $HOME/.config/verdaccio | |
| cp -v ./.github/workflows/verdaccio/config.yaml $HOME/.config/verdaccio/config.yaml | |
| nohup verdaccio --config $HOME/.config/verdaccio/config.yaml & | |
| wait-on http://localhost:4873 | |
| TOKEN_RES=$(curl -XPUT \ | |
| -H "Content-type: application/json" \ | |
| -d '{ "name": "test", "password": "test" }' \ | |
| 'http://localhost:4873/-/user/org.couchdb.user:test') | |
| TOKEN=$(echo "$TOKEN_RES" | jq -r '.token') | |
| npm set //localhost:4873/:_authToken $TOKEN | |
| - name: Windows dependencies | |
| if: matrix.os == 'windows-latest' | |
| run: npm install -g @angular/cli | |
| - name: npm install | |
| run: | | |
| npm install | |
| env: | |
| CI: true | |
| - name: Publish to Verdaccio | |
| run: | | |
| nohup verdaccio --config $HOME/.config/verdaccio/config.yaml & | |
| wait-on http://localhost:4873 | |
| npx lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://localhost:4873 | |
| - name: Install via @vendure/create | |
| run: | | |
| mkdir -p $HOME/install | |
| cd $HOME/install | |
| nohup verdaccio --config $HOME/.config/verdaccio/config.yaml & | |
| wait-on http://localhost:4873 | |
| npm set registry=http://localhost:4873 | |
| npm dist-tag ls @vendure/create | |
| npx @vendure/create@ci test-app --ci --use-npm --log-level info | |
| - name: Server smoke tests | |
| run: | | |
| cd $HOME/install/test-app | |
| npm run dev & | |
| node $GITHUB_WORKSPACE/.github/workflows/scripts/smoke-tests | |
| - name: Copy files (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| cd ~/install/test-app | |
| New-Item -ItemType Directory -Force -Path src/plugins/test-plugin | |
| Copy-Item "$env:GITHUB_WORKSPACE/.github/workflows/scripts/vite.config.mts" -Destination "./vite.config.mts" | |
| Copy-Item "$env:GITHUB_WORKSPACE/.github/workflows/scripts/test-plugin/*" -Destination "src/plugins/test-plugin/" -Recurse -Force | |
| Copy-Item "$env:GITHUB_WORKSPACE/.github/workflows/scripts/setup-test-plugin.js" -Destination "./setup-test-plugin.js" | |
| - name: Copy files (Unix) | |
| if: runner.os != 'Windows' | |
| run: | | |
| cd ~/install/test-app | |
| mkdir -p src/plugins/test-plugin | |
| cp "$GITHUB_WORKSPACE/.github/workflows/scripts/vite.config.mts" ./vite.config.mts | |
| cp -r "$GITHUB_WORKSPACE/.github/workflows/scripts/test-plugin/." src/plugins/test-plugin/ | |
| cp "$GITHUB_WORKSPACE/.github/workflows/scripts/setup-test-plugin.js" ./setup-test-plugin.js | |
| - name: Run setup script | |
| shell: bash | |
| run: | | |
| cd ~/install/test-app | |
| node setup-test-plugin.js | |
| - name: Check SWC version | |
| shell: bash | |
| run: | | |
| cd ~/install/test-app | |
| npm ls @swc/core | |
| - name: Install Playwright | |
| run: | | |
| cd $GITHUB_WORKSPACE | |
| npm install playwright | |
| npx playwright install-deps | |
| npx playwright install chromium | |
| - name: Start dashboard and run tests | |
| run: | | |
| cd ~/install/test-app | |
| # start the dev server in the background | |
| npm run dev & | |
| DEV_PID=$! | |
| # Wait a moment for it to start | |
| sleep 5 | |
| # Start the dashboard in the background | |
| npx vite --port 5173 & | |
| DASHBOARD_PID=$! | |
| # Wait a moment for it to start | |
| sleep 5 | |
| # Run the dashboard tests | |
| node $GITHUB_WORKSPACE/.github/workflows/scripts/dashboard-tests.js | |
| # Clean up dashboard process | |
| kill $DASHBOARD_PID 2>/dev/null || true | |
| # Clean up dev server process | |
| kill $DEV_PID 2>/dev/null || true | |
| - name: Upload dashboard test screenshots | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dashboard-test-screenshots-${{ matrix.os }}-${{ matrix.node-version }} | |
| path: /tmp/dashboard-test-*.png | |
| retention-days: 28 |