| name: Build & Deploy |
| |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| |
| jobs: |
| build-deploy: |
| runs-on: ubuntu-latest |
| if: "!contains(github.event.head_commit.message, 'skip ci')" |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| |
| - name: Cache pnpm modules and build |
| uses: actions/cache@v4 |
| with: |
| path: | |
| node_modules |
| build |
| key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} |
| |
| - uses: actions/setup-node@v4 |
| with: |
| node-version: 20 |
| |
| - name: install dependencies |
| uses: pnpm/action-setup@v4 |
| with: |
| version: 9 |
| - name: Get pnpm store directory |
| shell: bash |
| run: | |
| echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV |
| - name: Setup pnpm cache |
| uses: actions/cache@v4 |
| with: |
| path: ${{ env.STORE_PATH }} |
| key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} |
| restore-keys: | |
| ${{ runner.os }}-pnpm-store- |
| - name: Install dependencies |
| run: pnpm install |
| - name: Run scripts |
| run: | |
| node scripts/fetchPlugins.js |
| node scripts/fetchStars.js |
| node scripts/contributor.js |
| |
| - name: build |
| run: pnpm run build |
| |
| - uses: peaceiris/actions-gh-pages@v4 |
| if: github.event_name != 'pull_request' |
| with: |
| github_token: ${{ secrets.GITHUB_TOKEN }} |
| publish_dir: ./build |
| publish_branch: dist-pages |