name: E2E CLI on: [pull_request] 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@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Use Node uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: | corepack enable corepack prepare - name: set store run: | mkdir ~/.pnpm-store pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm install --reporter=silence --ignore-scripts --registry http://localhost:4873 - name: Cache .pnpm-store uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} restore-keys: | pnpm- build: needs: [prepare] runs-on: ubuntu-latest steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Use Node 16 uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: | corepack enable corepack prepare - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} - name: set store run: | pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm recursive install --reporter=silence --registry http://localhost:4873 - name: build run: pnpm build - name: Cache packages uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 id: cache-packages with: path: ./packages/ key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} restore-keys: | packages- # - name: Cache test # uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3 # id: cache-test # with: # path: ./e2e/ # key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # restore-keys: | # test- e2e-cli-npm: needs: [prepare, build] strategy: fail-fast: false matrix: pkg: [ npm6, npm7, npm8, npm9, npm10 ] node: [20, 21] name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }} runs-on: ubuntu-latest steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3 with: node-version: ${{ matrix.node }} - name: Install pnpm run: | corepack enable corepack prepare - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} - name: set store run: | pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873 - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ./packages/ key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3 # with: # path: ./e2e/ # key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} - name: build e2e run: pnpm --filter @verdaccio/test-cli-commons build - name: Test CLI run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}} # TODO: fix pnpm setup # e2e-cli-pnpm: # needs: [prepare, build] # strategy: # fail-fast: true # matrix: # pkg: # [ # pnpm6, # pnpm7, # pnpm8 # ] # node: [20, 21] # name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }} # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 # - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3 # with: # node-version: ${{ matrix.node }} # - name: Install pnpm # run: | # corepack enable # corepack prepare # - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 # with: # path: ~/.pnpm-store # key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # - name: set store # run: | # pnpm config set store-dir ~/.pnpm-store # - name: Install # run: pnpm install --loglevel debug --ignore-scripts --registry http://localhost:4873 # - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 # with: # path: ./packages/ # key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # # - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3 # # with: # # path: ./e2e/ # # key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # - name: build e2e # run: pnpm --filter @verdaccio/test-cli-commons build # - name: Test CLI # run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}} e2e-cli-yarn: needs: [prepare, build] strategy: fail-fast: false matrix: pkg: [ yarn1, yarn2, yarn3, yarn4 ] node: [20, 21] name: ${{ matrix.pkg }}/ ubuntu-latest / ${{ matrix.node }} runs-on: ubuntu-latest steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v3 with: node-version: ${{ matrix.node }} - name: Install pnpm run: | corepack enable corepack prepare - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} - name: set store run: | pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm install --offline --reporter=silence --ignore-scripts --registry http://localhost:4873 - uses: actions/cache@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3 with: path: ./packages/ key: pkg-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} # - uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3 # with: # path: ./e2e/ # key: test-${{ hashFiles('pnpm-lock.yaml') }}-${{ github.run_id }}-${{ github.sha }} - name: build e2e run: pnpm --filter @verdaccio/test-cli-commons build - name: Test CLI run: NODE_ENV=production pnpm test --filter ...@verdaccio/e2e-cli-${{matrix.pkg}}