| name: Site Build |
| |
| on: |
| push: |
| branches: |
| - main |
| pull_request: |
| branches: |
| - main |
| # allow manually run the action: |
| workflow_dispatch: |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| test: |
| runs-on: ubuntu-latest |
| if: github.event_name == 'pull_request' |
| |
| steps: |
| - uses: actions/checkout@v4 |
| |
| - name: Install pnpm |
| uses: pnpm/action-setup@v4 |
| |
| - name: Use Node.js 22 |
| uses: actions/setup-node@v4 |
| with: |
| node-version: 22 |
| |
| - name: Install dependencies |
| run: pnpm install |
| |
| - name: Test build website |
| env: |
| NODE_OPTIONS: --max_old_space_size=8192 |
| run: pnpm build |
| |
| - name: Deploy staging website |
| if: contains(github.event.pull_request.labels.*.name, 'deploy-staging') |
| env: |
| SSH_KEY: ${{ secrets.IOTDB_WEBSITE_BUILD_SSH }} |
| run: | |
| mkdir -p ~/.ssh |
| echo "$SSH_KEY" > ~/.ssh/id_ed25519 |
| chmod 600 ~/.ssh/id_ed25519 |
| ssh-keyscan -H github.com >> ~/.ssh/known_hosts |
| git config --global user.name github-actions |
| git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com |
| npm run deploy:staging |
| |
| linksCheck: |
| runs-on: ubuntu-latest |
| if: github.event_name == 'pull_request' |
| |
| steps: |
| - uses: actions/checkout@v4 |
| |
| - name: Install pnpm |
| uses: pnpm/action-setup@v4 |
| |
| - name: Use Node.js 22 |
| uses: actions/setup-node@v4 |
| with: |
| node-version: 22 |
| |
| - name: Install dependencies |
| run: pnpm install |
| |
| - name: Test build website |
| env: |
| NODE_OPTIONS: --max_old_space_size=8192 |
| run: pnpm run check-links |
| |
| deploy: |
| runs-on: ubuntu-latest |
| if: github.event_name == 'workflow_dispatch' && github.ref_name == 'main' || github.event_name == 'push' |
| |
| steps: |
| - uses: actions/checkout@v4 |
| with: |
| fetch-depth: 0 |
| |
| - name: Install pnpm |
| uses: pnpm/action-setup@v4 |
| |
| - name: Use Node.js 22 |
| uses: actions/setup-node@v4 |
| with: |
| node-version: 22 |
| |
| - name: Install dependencies |
| run: pnpm install |
| |
| - name: Build website |
| env: |
| NODE_OPTIONS: --max_old_space_size=8192 |
| run: pnpm build |
| |
| - name: Deploy website |
| env: |
| SSH_KEY: ${{ secrets.IOTDB_WEBSITE_BUILD_SSH }} |
| run: | |
| mkdir -p ~/.ssh |
| echo "$SSH_KEY" > ~/.ssh/id_ed25519 |
| chmod 600 ~/.ssh/id_ed25519 |
| ssh-keyscan -H github.com >> ~/.ssh/known_hosts |
| git config --global user.name github-actions |
| git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com |
| npm run deploy |