Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/check-cli-reference.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Check CLI reference is up to date

on:
pull_request:
branches:
- main
paths:
- 'docs/node-operators/mina-cli-reference.mdx'
- 'scripts/generate-cli-reference.sh'
- '.github/workflows/check-cli-reference.yml'
workflow_dispatch: {}
schedule:
- cron: '0 6 * * 1' # Weekly on Monday at 6am UTC

jobs:
check-cli-reference:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Mina daemon
run: |
echo "deb [trusted=yes] http://packages.o1test.net/ bookworm stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y mina-mainnet

- name: Capture installed version
id: version
run: |
VERSION=$(dpkg-query -W -f='${Version}' mina-mainnet)
echo "mina_version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Installed mina version: $VERSION"

- name: Generate CLI reference
run: |
chmod +x scripts/generate-cli-reference.sh
./scripts/generate-cli-reference.sh /usr/lib/mina/mesa/mina /tmp/mina-cli-reference

- name: Check for differences
run: |
cp /tmp/mina-cli-reference/mina-cli-reference.md /tmp/generated.mdx
if ! diff -q docs/node-operators/mina-cli-reference.mdx /tmp/generated.mdx > /dev/null 2>&1; then
echo ""
echo "❌ CLI reference is outdated (mina version: ${{ steps.version.outputs.mina_version }})"
echo "Run './scripts/generate-cli-reference.sh /usr/lib/mina/mesa/mina /tmp/out' and copy the output to docs/node-operators/mina-cli-reference.mdx"
echo ""
diff --unified docs/node-operators/mina-cli-reference.mdx /tmp/generated.mdx || true
exit 1
else
echo "✅ CLI reference is up to date with mina ${{ steps.version.outputs.mina_version }}"
fi

update-cli-reference:
needs: check-cli-reference
if: |
always() && needs.check-cli-reference.result == 'failure' &&
(github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install Mina daemon
run: |
echo "deb [trusted=yes] http://packages.o1test.net/ bookworm stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update
sudo apt-get install -y mina-mainnet

- name: Capture installed version
id: version
run: |
VERSION=$(dpkg-query -W -f='${Version}' mina-mainnet)
echo "mina_version=$VERSION" >> "$GITHUB_OUTPUT"

- name: Generate CLI reference
run: |
chmod +x scripts/generate-cli-reference.sh
./scripts/generate-cli-reference.sh /usr/lib/mina/mesa/mina /tmp/mina-cli-reference

- name: Copy output to docs
run: |
cp /tmp/mina-cli-reference/mina-cli-reference.md docs/node-operators/mina-cli-reference.mdx

- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
commit-message: "Update CLI reference for mina ${{ steps.version.outputs.mina_version }}"
title: "Update CLI reference for mina ${{ steps.version.outputs.mina_version }}"
body: |
Auto-generated CLI reference update from `mina` version `${{ steps.version.outputs.mina_version }}`.

Generated by `scripts/generate-cli-reference.sh` using `/usr/lib/mina/mesa/mina`.
branch: auto/cli-reference-update
base: main