Spaces:
Paused
Paused
| name: Deploy Site | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'website/**' | |
| - 'landingpage/**' | |
| - 'skills/**' | |
| - 'optional-skills/**' | |
| - '.github/workflows/deploy-site.yml' | |
| workflow_dispatch: | |
| permissions: | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| build-and-deploy: | |
| # Only run on the upstream repository, not on forks | |
| if: github.repository == 'NousResearch/hermes-agent' | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deploy.outputs.page_url }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: npm | |
| cache-dependency-path: website/package-lock.json | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install PyYAML for skill extraction | |
| run: pip install pyyaml httpx | |
| - name: Extract skill metadata for dashboard | |
| run: python3 website/scripts/extract-skills.py | |
| - name: Build skills index (if not already present) | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| if [ ! -f website/static/api/skills-index.json ]; then | |
| python3 scripts/build_skills_index.py || echo "Skills index build failed (non-fatal)" | |
| fi | |
| - name: Install dependencies | |
| run: npm ci | |
| working-directory: website | |
| - name: Build Docusaurus | |
| run: npm run build | |
| working-directory: website | |
| - name: Stage deployment | |
| run: | | |
| mkdir -p _site/docs | |
| # Landing page at root | |
| cp -r landingpage/* _site/ | |
| # Docusaurus at /docs/ | |
| cp -r website/build/* _site/docs/ | |
| # CNAME so GitHub Pages keeps the custom domain between deploys | |
| echo "hermes-agent.nousresearch.com" > _site/CNAME | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: _site | |
| - name: Deploy to GitHub Pages | |
| id: deploy | |
| uses: actions/deploy-pages@v4 | |