diff --git a/.github/workflows/plugin-generator-e2e.yaml b/.github/workflows/plugin-generator-e2e.yaml new file mode 100644 index 000000000..594f27654 --- /dev/null +++ b/.github/workflows/plugin-generator-e2e.yaml @@ -0,0 +1,47 @@ +name: E2E Generator Verdaccio Plugin + +on: + pull_request: + workflow_dispatch: + push: + branches: + - 'master' +jobs: + e2e-plugin-generator: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [18,20, 22] + 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 pnpm + run: | + corepack enable + corepack install + - uses: actions/cache@v3 + with: + path: ~/.pnpm-store + key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} + - name: install + run: pnpm install + - name: build + run: pnpm build + - name: install verdaccio + run: npm install -g verdaccio@5 + - name: Start server + run: verdaccio -c e2e/docker/generator-e2e/generator.yaml & + - name: ping server + run: curl http://localhost:4873/-/ping + - name: login + run: npx npm-cli-login -u test -p test -e test@domain.test -r http://localhost:4873 + - name: publish + run: pnpm local:publish + - name: install yeoman + run: npm install -g yo@4 + - name: install generator + run: npm install -g generator-verdaccio-plugin --registry http://localhost:4873 +# Future: add a test to verify the plugin is working with prompt diff --git a/e2e/docker/generator-e2e/generator.yaml b/e2e/docker/generator-e2e/generator.yaml new file mode 100644 index 000000000..6bf58ec03 --- /dev/null +++ b/e2e/docker/generator-e2e/generator.yaml @@ -0,0 +1,39 @@ +storage: ./storage + +web: + title: Verdaccio E2E Local +auth: + htpasswd: + file: ./htpasswd +uplinks: + npmjs: + url: https://registry.npmjs.org/ +packages: + '@verdaccio/*': + access: $all + publish: $all + unpublish: $all + '@*/*': + access: $all + publish: $authenticated + unpublish: $authenticated + proxy: npmjs + 'verdaccio-*': + access: $all + publish: $all + unpublish: $all + 'verdaccio': + access: $all + publish: $all + unpublish: $all + '**': + access: $all + publish: $authenticated + unpublish: $authenticated + proxy: npmjs + +middlewares: + audit: + enabled: false + +log: { type: stdout, format: json, level: http }