Update Docs Data #53
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: Update Docs Data | |
on: | |
workflow_dispatch: # Allow manual triggering via GitHub UI | |
schedule: | |
- cron: '0 15 * * *' # Run daily at 3:00 PM UTC (London afternoon) | |
jobs: | |
update-docs-data: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout docs repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Setup pnpm | |
uses: pnpm/action-setup@v3 | |
with: | |
version: 8 | |
run_install: false | |
- name: Get current date and time | |
id: datetime | |
run: | | |
echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT | |
echo "datetime=$(date +'%Y-%m-%d-%H%M')" >> $GITHUB_OUTPUT | |
- name: Clone docs-data-updater repository | |
uses: actions/checkout@v4 | |
with: | |
repository: pimlicolabs/docs-data-updater | |
token: ${{ secrets.GH_PAT }} | |
path: docs-data-updater | |
- name: Configure npm for private packages | |
working-directory: docs-data-updater | |
run: | | |
echo "@pimlicolabs:registry=https://npm.pkg.github.com/" > .npmrc | |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install dependencies in docs-data-updater | |
working-directory: docs-data-updater | |
run: pnpm install | |
- name: Build docs-data-updater | |
working-directory: docs-data-updater | |
run: pnpm build | |
- name: Create .env file with database credentials | |
working-directory: docs-data-updater | |
run: | | |
echo "DATABASE_URL=${{ secrets.DATABASE_URL }}" > .env | |
- name: Pull Pimlico configs | |
working-directory: docs-data-updater | |
run: | | |
mkdir -p configs && cd configs && rm -f * && oras pull ghcr.io/pimlicolabs/configs:latest | |
- name: Generate supported chains data | |
working-directory: docs-data-updater | |
run: | | |
# Run the script and filter out npm/pnpm output lines to get only valid JSON | |
pnpm generate:supported-chains | grep -v "^>" | grep -v "docs-data-updater@" > ../data/supported-chains.json | |
- name: Generate supported entrypoints data | |
working-directory: docs-data-updater | |
run: | | |
# Run the script and filter out npm/pnpm output lines to get only valid JSON | |
pnpm generate:supported-entrypoints | grep -v "^>" | grep -v "docs-data-updater@" > ../data/supported-entrypoints.json | |
- name: Generate supported accounts data | |
working-directory: docs-data-updater | |
run: | | |
# Run the script and filter out npm/pnpm output lines to get only valid JSON | |
pnpm generate:supported-accounts | grep -v "^>" | grep -v "docs-data-updater@" > ../data/supported-accounts.json | |
- name: Copy markdown files from data-docs-updater to docs | |
run: | | |
# Copy all markdown files from data-docs-updater/data/ to docs/data/ | |
if [ -d "docs-data-updater/data" ] && [ "$(ls -A docs-data-updater/data/*.md 2>/dev/null)" ]; then | |
cp -f docs-data-updater/data/*.md data/ | |
echo "Copied markdown files from docs-data-updater/data/ to data/" | |
else | |
echo "No markdown files found in docs-data-updater/data/" | |
fi | |
- name: Check for changes | |
id: check_changes | |
run: | | |
git add data/*.md | |
if git diff --staged --quiet; then | |
echo "No changes detected in docs data files" | |
echo "changes_detected=false" >> $GITHUB_OUTPUT | |
else | |
echo "Changes detected in docs data files" | |
echo "changes_detected=true" >> $GITHUB_OUTPUT | |
fi | |
- name: Remove docs-data-updater directory | |
run: rm -rf docs-data-updater | |
- name: Get current branch | |
id: get_branch | |
run: | | |
# Default to main if run from workflow_dispatch without a specific branch context | |
CURRENT_BRANCH=${GITHUB_REF#refs/heads/} | |
if [ "$CURRENT_BRANCH" = "$GITHUB_REF" ]; then | |
CURRENT_BRANCH="main" | |
fi | |
echo "branch=$CURRENT_BRANCH" >> $GITHUB_OUTPUT | |
echo "Current branch: $CURRENT_BRANCH" | |
- name: Create Pull Request | |
if: steps.check_changes.outputs.changes_detected == 'true' | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
commit-message: "chore: update docs data [automated]" | |
title: "Update docs data - ${{ steps.datetime.outputs.datetime }}" | |
body: | | |
This PR updates the docs data from the Pimlico database: | |
- Supported chains | |
- Supported entrypoints | |
- Supported accounts | |
- Supported tokens | |
- Updated on: ${{ steps.datetime.outputs.date }} | |
- Automated update via GitHub Actions | |
branch: update-docs-data-${{ steps.datetime.outputs.datetime }} | |
base: ${{ steps.get_branch.outputs.branch }} | |
delete-branch: true | |
labels: | | |
automated | |
data-update |