name: Verdaccio Website CI on: workflow_dispatch: permissions: contents: read # to fetch code (actions/checkout) concurrency: group: website-${{ github.ref }} cancel-in-progress: true jobs: build: permissions: contents: read # to fetch code (actions/checkout) deployments: write pull-requests: write # to comment on pull-requests runs-on: ubuntu-latest if: github.repository == 'verdaccio/verdaccio' name: setup verdaccio services: verdaccio: image: verdaccio/verdaccio:5 ports: - 4873:4873 env: NODE_ENV: production env: NODE_OPTIONS: --max_old_space_size=4096 steps: - uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 - name: Node uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3 with: node-version-file: '.nvmrc' - name: Install pnpm run: | corepack enable corepack install - name: set store run: | mkdir ~/.pnpm-store pnpm config set store-dir ~/.pnpm-store - name: Install run: pnpm install --registry http://localhost:4873 - name: Cache .pnpm-store uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: ~/.pnpm-store key: pnpm-${{ hashFiles('pnpm-lock.yaml') }} restore-keys: | pnpm- - name: Build run: pnpm build - name: Build Translations percentage run: pnpm --filter @verdaccio/crowdin-translations build - name: Cache Docusaurus Build uses: actions/cache@e12d46a63a90f2fae62d114769bbf2a179198b5c # v3 with: path: website/node_modules/.cache/webpack key: cache/webpack-${{github.ref}}-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: cache/webpack-${{github.ref}} - name: Build Production if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch' env: CROWDIN_VERDACCIO_API_KEY: ${{ secrets.CROWDIN_VERDACCIO_API_KEY }} SENTRY_KEY: ${{ secrets.SENTRY_KEY }} CONTEXT: production run: pnpm --filter @verdaccio/website netlify:build - name: Deploy to Netlify if: (github.event_name == 'push' && github.ref == 'refs/heads/master') || github.event_name == 'workflow_dispatch' env: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} run: pnpm --filter ...@verdaccio/website netlify:deploy