name: Publish & Install on: push: branches: - master - major - minor - parallel-e2e pull_request: branches: - master - major - minor defaults: run: shell: bash jobs: publish_install: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [14.x, 16.x] fail-fast: false steps: - uses: actions/checkout@v3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install Verdaccio run: | npm install -g verdaccio npm install -g verdaccio-auth-memory npm install -g verdaccio-memory npm install -g npm-auth-to-token@1.0.0 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 &>$tmp_registry_log & npm-auth-to-token -u test -p test -e test@test.com -r http://0.0.0.0:4873 - name: Windows dependencies if: matrix.os == 'windows-latest' run: npm install -g @angular/cli - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - uses: actions/cache@v3 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: '**/node_modules' key: ${{ runner.os }}-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-${{ matrix.node-version }}-yarn- - name: Yarn install if: steps.yarn-cache.outputs.cache-hit != 'true' run: | yarn config set unsafe-perm true yarn install --network-timeout 1000000 --prefer-offline env: CI: true - name: Bootstrap run: yarn bootstrap env: CI: true - name: Publish to Verdaccio run: | yarn lerna publish prepatch --preid ci --no-push --no-git-tag-version --no-commit-hooks --force-publish "*" --yes --dist-tag ci --registry http://0.0.0.0:4873 - name: Install via @vendure/create run: | mkdir -p $HOME/install cd $HOME/install npm set registry=http://0.0.0.0: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