name: E2E CLI on: pull_request: paths: - .changeset/** - .github/workflows/e2e-ci.yml - 'packages/**' - 'test/**' - 'jest/**' - 'package.json' - 'pnpm-workspace.yaml' permissions: contents: read jobs: prepare: runs-on: ubuntu-latest name: setup e2e verdaccio services: verdaccio: image: verdaccio/verdaccio:nightly-master ports: - 4873:4873 env: NODE_ENV: production steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: npm i pnpm@6.32.15 -g - name: set store run: | mkdir ~/.pnpm-store pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm recursive install --frozen-lockfile --reporter=silence --ignore-scripts --registry http://localhost:4873 - name: Cache .pnpm-store uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | pnpm- build: needs: [prepare] runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - name: Use Node 16 uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: npm i pnpm@6.32.15 -g - uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --reporter=silence --registry http://localhost:4873 - name: build run: pnpm build - name: Cache packages uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 id: cache-packages with: path: ./packages/ key: pkg-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | packages- - name: Cache test uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 id: cache-test with: path: ./e2e/ key: test-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | test- e2e-cli: needs: [prepare, build] strategy: fail-fast: true matrix: pkg: [npm6, npm7, npm8, npm9, pnpm6, pnpm7, yarn1, yarn2, yarn3, yarn4] name: ${{ matrix.pkg }} / ${{ matrix.os }} runs-on: ubuntu-latest steps: - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3 - uses: actions/setup-node@2fddd8803e2f5c9604345a0b591c3020ee971a93 # tag=v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: npm i pnpm@6.32.15 -g - uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --offline --frozen-lockfile --reporter=silence --ignore-scripts --registry http://localhost:4873 - uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 with: path: ./packages/ key: pkg-${{ hashFiles('pnpm-lock.yaml') }} - uses: actions/cache@fd5de65bc895cf536527842281bea11763fefd77 # tag=v3 with: path: ./e2e/ key: test-${{ hashFiles('pnpm-lock.yaml') }} - name: Test CLI run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}