diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index fac5141b2..49e4943f3 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -33,28 +33,5 @@ jobs: - name: Install dependencies run: pnpm install - - name: Override package.json version - run: | - COMMIT_HASH=$(git rev-parse HEAD) - echo "Latest commit: $COMMIT_HASH" - pnpm version $COMMIT_HASH - - - name: Pack - run: pnpm pack - - - name: Clone examples - run: git clone git@github.com:mswjs/examples.git - - - name: Install example dependencies - working_directory: ./examples - run: pnpm install - - - name: Link MSW build - working_directory: ./examples - run: | - pnpm link ../msw-$COMMIT_HASH.tgz - pnpm ls msw - - - name: Tests - working_directory: ./examples - run: pnpm test + - name: Test examples + run: ./config/scripts/smoke-test.sh diff --git a/.gitignore b/.gitignore index f8458255a..db26fa845 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,8 @@ stats.html msw-*.tgz .husky/_ .env -**/test-results \ No newline at end of file +**/test-results + +# Smoke test temporary files. +/package.json.copy +/examples \ No newline at end of file diff --git a/config/scripts/smoke-test.sh b/config/scripts/smoke-test.sh new file mode 100755 index 000000000..f3b2650ab --- /dev/null +++ b/config/scripts/smoke-test.sh @@ -0,0 +1,41 @@ +#!/bin/bash +set -e + +COMMIT_HASH=$(git rev-parse HEAD) +MSW_VERSION="0.0.0-$COMMIT_HASH" +echo "Latest commit: $COMMIT_HASH" +echo "In-progress MSW version: $MSW_VERSION" + +PKG_JSON_COPY="package.json.copy" +cp package.json $PKG_JSON_COPY + +pnpm version $MSW_VERSION --no-git-tag-version --allow-same-version + +echo "" +echo "Packing MSW..." +pnpm pack + +EXAMPLES_REPO=https://github.com/mswjs/examples.git +EXAMPLES_DIR=./examples +echo "" +echo "Cloning the examples from "$EXAMPLES_REPO"..." + +if [[ -d "$EXAMPLES_DIR" ]]; then + echo "Examples already cloned, skipping..." +else + git clone $EXAMPLES_REPO $EXAMPLES_DIR +fi + +echo "" +echo "Installing dependencies..." +cd $EXAMPLES_DIR +pnpm install + +echo "" +echo "Linking MSW..." +pnpm add msw --filter="with-*" file:../../../msw-$MSW_VERSION.tgz +pnpm ls msw + +echo "" +echo "Running tests..." +CI=1 pnpm test ; (cd ../ && mv $PKG_JSON_COPY ./package.json)