Skip to content

feat(pm): expose embeddable command library #3972

feat(pm): expose embeddable command library

feat(pm): expose embeddable command library #3972

name: utoopack-integration
on:
push:
branches: ["next"]
pull_request:
types: [opened, synchronize, reopened, edited]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
integration:
if: (github.event_name == 'push' && contains(github.event.head_commit.message, '(pack)')) || (github.event_name == 'pull_request' && contains(github.event.pull_request.title, '(pack)'))
name: Pack Integration Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Init git submodules
run: git submodule update --init --recursive --depth 1
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf /usr/share/swift
sudo rm -rf /usr/local/.ghcup
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf /usr/local/share/powershell
sudo rm -rf /usr/share/miniconda
sudo docker image prune --all --force
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 22.14.0
- name: Setup Utoo
uses: utooland/setup-utoo@v1
- name: Install dependencies
run: utoo install
- name: Setup Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly-2026-07-29
components: rustfmt, clippy
# - name: Rust Cache
# uses: swatinem/rust-cache@v2
- name: Integration Test
run: |
# Build packages
npm run build --workspace @utoo/pack-shared
npm run build:local --workspace @utoo/pack
npm run build --workspace @utoo/pack-cli
# Regression coverage for independent PostCSS and loader evaluator graphs sharing one
# build-time runtime (utooland/utoo#3316).
npm test --workspace shared-runtime-async-module
# Verify examples
for dir in examples/*/; do
if [ -f "${dir}package.json" ]; then
if jq -e '.scripts.build // "" | contains("up build")' "${dir}package.json" > /dev/null; then
echo "----------------------------------------------------"
echo "Verifying example: $dir"
echo "----------------------------------------------------"
(cd "$dir" && npm run build && echo "Output dist content:" && ls -lh dist | awk 'NR>1 {print $5, $9}')
if [ $? -ne 0 ]; then
echo "Error: Build failed for example $dir"
exit 1
fi
fi
fi
done