diff --git a/.github/workflows/v2-tests-e2e.yml b/.github/workflows/v2-tests-e2e.yml index 4b6706c3be86..a95a9d01b188 100644 --- a/.github/workflows/v2-tests-e2e.yml +++ b/.github/workflows/v2-tests-e2e.yml @@ -29,24 +29,32 @@ jobs: uses: bahmutov/npm-install@v1 with: install-command: yarn - - name: Setup test-website project against master release + - name: Generate test-website project against master release run: | - yarn test:build:v2 - rm -rf node_modules + KEEP_CONTAINER=true yarn test:build:v2 -s + mv test-website ../test-website + - name: Install test-website project with Yarn v1 + run: | + cd ../test-website + yarn install + env: + npm_config_registry: http://localhost:4873 - name: Start test-website project - run: cd test-website && yarn start --no-open + run: cd ../test-website && yarn start --no-open env: E2E_TEST: true - name: Build test-website project - run: cd test-website && yarn build + run: cd ../test-website && yarn build env: CI: true - yarn-v2: + + yarn-berry: timeout-minutes: 30 runs-on: ubuntu-latest strategy: matrix: node: ['14'] + nodeLinker: ['pnp', 'node-modules'] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node }} @@ -57,24 +65,34 @@ jobs: uses: bahmutov/npm-install@v1 with: install-command: yarn - - name: Setup test-website project against master release + + - name: Generate test-website project against master release run: | - KEEP_CONTAINER=true yarn test:build:v2 - rm -rf node_modules - - name: Setup test-website project for Yarn v2 + KEEP_CONTAINER=true yarn test:build:v2 -s + mv test-website ../test-website + - name: Install test-website project with Yarn Berry and nodeLinker = ${{ matrix.nodeLinker }} run: | - cd test-website + cd ../test-website + + # we have to switch to berry first before setting the version we want yarn set version berry + # temporary using canary for #5342 + yarn set version canary + + yarn config set nodeLinker ${{ matrix.nodeLinker }} yarn config set pnpMode loose yarn config set npmRegistryServer http://localhost:4873 yarn config set unsafeHttpWhitelist --json '["localhost"]' yarn config set enableGlobalCache true + yarn install + env: + YARN_ENABLE_IMMUTABLE_INSTALLS: false # Yarn berry should create the lockfile, despite CI env - name: Start test-website project - run: cd test-website && yarn start --no-open + run: cd ../test-website && yarn start --no-open env: E2E_TEST: true - name: Build test-website project - run: cd test-website && yarn build + run: cd ../test-website && yarn build env: CI: true diff --git a/admin/scripts/test-release.sh b/admin/scripts/test-release.sh index 1c00e79fd343..896915ebc68a 100755 --- a/admin/scripts/test-release.sh +++ b/admin/scripts/test-release.sh @@ -12,8 +12,27 @@ NEW_VERSION="$(node -p "require('./packages/docusaurus/package.json').version"). CONTAINER_NAME="verdaccio" EXTRA_OPTS="" -if getopts ":n" arg; then - EXTRA_OPTS="--use-npm" +usage() { echo "Usage: $0 [-n] [-s]" 1>&2; exit 1; } + +while getopts ":ns" o; do + case "${o}" in + n) + EXTRA_OPTS="--use-npm" + ;; + s) + EXTRA_OPTS="--skip-install" + ;; + *) + usage + ;; + esac +done +shift $((OPTIND-1)) + + +if [ ! -z $EXTRA_OPTS ] +then + echo docusaurus-init extra options = ${EXTRA_OPTS} fi # Run Docker container with private npm registry Verdaccio