name: CI on: push: branches: - master - 'changeset-release/master' pull_request: paths: - .changeset/** - .github/workflows/ci.yml - 'packages/**' - 'jest/**' - 'package.json' - 'pnpm-workspace.yaml' jobs: prepare: runs-on: ubuntu-latest name: setup verdaccio services: verdaccio: image: verdaccio/verdaccio:5 ports: - 4873:4873 steps: - uses: actions/checkout@v2.3.1 - name: Use Node 14 uses: actions/setup-node@v1 with: node-version: 14 - name: Install pnpm run: npm i pnpm@6.10.3 -g - name: set store run: | mkdir ~/.pnpm-store pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm recursive install --frozen-lockfile --registry http://localhost:4873 - name: Cache .pnpm-store uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | pnpm- lint: runs-on: ubuntu-latest name: Lint needs: prepare steps: - uses: actions/checkout@v2.3.1 - name: Use Node 16 uses: actions/setup-node@v1 with: node-version: 16 - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --ignore-scripts - name: Lint run: pnpm lint format: runs-on: ubuntu-latest name: Format needs: prepare steps: - uses: actions/checkout@v2.3.1 - name: Use Node 16 uses: actions/setup-node@v1 with: node-version: 16 - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --ignore-scripts - name: Lint run: pnpm format:check build: runs-on: ubuntu-latest name: build needs: [format, lint] steps: - uses: actions/checkout@v2.3.1 - name: Use Node 16 uses: actions/setup-node@v1 with: node-version: 16 - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --ignore-scripts - name: build run: pnpm build - name: tar packages run: | tar -czvf ${{ github.workspace }}/pkg.tar.gz -C ${{ github.workspace }}/packages . - uses: actions/upload-artifact@v2 with: name: verdaccio-artifact path: pkg.tar.gz test: needs: build strategy: fail-fast: true matrix: os: [ubuntu-latest] ## Node 16 breaks UI test, jest issue node_version: [14] name: ${{ matrix.os }} / Node ${{ matrix.node_version }} runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2.3.1 - name: Use Node ${{ matrix.node_version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node_version }} - uses: actions/download-artifact@v2 with: name: verdaccio-artifact - name: untar packages run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --ignore-scripts - name: Test run: pnpm test ci-e2e-ui: needs: build runs-on: ubuntu-latest name: UI Test E2E Node 14 steps: - uses: actions/checkout@v2.3.1 - uses: actions/setup-node@v1 with: node-version: 14 - uses: actions/download-artifact@v2 with: name: verdaccio-artifact - name: untar packages run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install ## we need scripts, pupetter downloads aditional content run: pnpm recursive install --frozen-lockfile - name: Test UI run: pnpm test:e2e:ui # env: # DEBUG: verdaccio:e2e* ci-e2e-cli: needs: build runs-on: ubuntu-latest name: CLI Test E2E Node 14 steps: - uses: actions/checkout@v2.3.1 - uses: actions/setup-node@v1 with: node-version: 14 - uses: actions/download-artifact@v2 with: name: verdaccio-artifact - name: untar packages run: tar -xzvf pkg.tar.gz -C ${{ github.workspace }}/packages - name: Install pnpm run: npm i pnpm@6.10.3 -g - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install ## we need scripts, pupetter downloads aditional content run: pnpm recursive install --frozen-lockfile - name: Test CLI run: pnpm test:e2e:cli # env: # DEBUG: verdaccio* test-windows: needs: [format, lint] runs-on: windows-latest name: windows test node 14 steps: - uses: actions/checkout@v2.3.1 - name: Use Node 14 uses: actions/setup-node@v1 with: node-version: 14 - name: Install pnpm run: npm i pnpm@6.10.3 -g # pnpm cache is not working for windows (we need a solution) - uses: actions/cache@v2 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} - name: Install run: pnpm recursive install --frozen-lockfile --ignore-scripts - name: build run: pnpm build - name: Test run: pnpm test