TW review of the weekly updates (#307) #170
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "docs" | |
| on: | |
| pull_request: | |
| paths: | |
| - "**/*.d2" | |
| - "site/**" | |
| - "ui/**" | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - "**/*.d2" | |
| - "site/**" | |
| - "ui/**" | |
| jobs: | |
| docs-generate-d2-diagrams: | |
| name: "Generate D2 Diagrams" | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: 📥 Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.head_ref || github.ref_name }} | |
| fetch-depth: 2 # Needed to get previous commit for comparison | |
| - name: Install D2 | |
| run: | | |
| curl -fsSL https://d2lang.com/install.sh | sh -s -- | |
| d2 --version | |
| - name: Generate PNG files for changed D2 files | |
| run: | | |
| # Get list of changed .d2 files | |
| CHANGED_FILES=$(git diff --name-only HEAD^ HEAD | grep '\.d2$' || true) | |
| if [ -z "$CHANGED_FILES" ]; then | |
| echo "No .d2 files were changed" | |
| exit 0 | |
| fi | |
| echo "Changed .d2 files:" | |
| echo "$CHANGED_FILES" | |
| # Process each changed file | |
| echo "$CHANGED_FILES" | while read -r file; do | |
| if [ -f "$file" ]; then | |
| output_file="${file%.d2}.png" | |
| echo "Converting $file to $output_file" | |
| d2 "$file" "$output_file" | |
| fi | |
| done | |
| - name: Check for changes | |
| id: changes | |
| run: | | |
| git add *.png | |
| if git diff --staged --quiet; then | |
| echo "No changes to commit" | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "Changes detected" | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Commit and push changes | |
| if: steps.changes.outputs.has_changes == 'true' | |
| run: | | |
| git config --global user.name 'github-actions[bot]' | |
| git config --global user.email 'github-actions[bot]@users.noreply.github.com' | |
| git commit -m "Auto-generate diagram PNGs [skip ci]" | |
| git push origin HEAD:${{ github.head_ref || github.ref_name }} | |
| viz-build: | |
| name: "Build Visualizer" | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: 📥 Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| fetch-depth: 2 | |
| - name: 🛠️ Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: "yarn" | |
| cache-dependency-path: ./ui/yarn.lock | |
| - name: 📦 Install dependencies | |
| working-directory: ui | |
| run: yarn install | |
| - name: 🏗️ Build visualizer | |
| working-directory: ui | |
| run: | | |
| yarn build | |
| - name: 🚢 Upload visualizer static site | |
| id: upload_viz | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: visualizer | |
| path: ui/dist | |
| docs-build: | |
| name: "Build" | |
| runs-on: ubuntu-22.04 | |
| needs: viz-build | |
| outputs: | |
| has_changes: ${{ steps.check_changes.outputs.has_changes }} | |
| steps: | |
| - name: 📥 Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 2 | |
| - name: Check for site or visualizer changes | |
| id: check_changes | |
| run: | | |
| SITE_CHANGES=$(git diff --name-only HEAD^ HEAD -- site/ || true) | |
| VIZ_CHANGES=$(git diff --name-only HEAD^ HEAD -- ui/ || true) | |
| if [ -z "$SITE_CHANGES" ] && [ -z "$VIZ_CHANGES" ]; then | |
| echo "No changes in site directory" | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "Changes detected in site directory:" | |
| echo "$SITE_CHANGES" | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| fi | |
| shell: "bash" | |
| - name: 🛠️ Setup Node.js | |
| if: steps.check_changes.outputs.has_changes == 'true' | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: "yarn" | |
| cache-dependency-path: ./site/yarn.lock # Changed from site/yarn.lock to ./site/yarn.lock | |
| - name: 📦 Install dependencies | |
| if: steps.check_changes.outputs.has_changes == 'true' | |
| working-directory: site | |
| run: yarn install | |
| - name: 👁️ Unpack visualizer | |
| if: steps.check_changes.outputs.has_changes == 'true' | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: visualizer | |
| path: site/static/visualizer | |
| - name: 🏗️ Build Docusaurus site | |
| if: steps.check_changes.outputs.has_changes == 'true' | |
| working-directory: site | |
| run: | | |
| yarn build | |
| - name: 🚀 Publish Docusaurus build | |
| if: steps.check_changes.outputs.has_changes == 'true' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: docusaurus-build | |
| if-no-files-found: error | |
| path: | | |
| site/build/* | |
| docs-publish: | |
| name: "Publish" | |
| if: | |
| ${{ github.ref == 'refs/heads/main' && | |
| needs.docs-build.outputs.has_changes == 'true' }} | |
| runs-on: ubuntu-22.04 | |
| needs: docs-build | |
| steps: | |
| - name: 📥 Download Docusaurus build | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: docusaurus-build | |
| path: ./github-pages | |
| - name: 🚀 Publish GitHub Pages | |
| uses: peaceiris/actions-gh-pages@v4 | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN || github.token }} | |
| publish_dir: ./github-pages | |
| cname: leios.cardano-scaling.org |