Skip to content
94 changes: 94 additions & 0 deletions .github/workflows/generate-cli-reference.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Generate CLI Reference

on:
workflow_dispatch: {}
pull_request:
paths:
- 'docs/node-operators/mina-cli-reference.mdx'
- 'scripts/generate-cli-reference.sh'
- '.github/workflows/generate-cli-reference.yml'
push:
branches:
- main
paths:
- 'docs/node-operators/mina-cli-reference.mdx'
- 'scripts/generate-cli-reference.sh'
- '.github/workflows/generate-cli-reference.yml'

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"

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

- name: Check if CLI reference is outdated
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 "::warning::CLI reference is outdated (current mina version: ${{ steps.version.outputs.mina_version }})"
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:
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
needs: 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"

- name: Generate CLI reference
run: |
chmod +x scripts/generate-cli-reference.sh
./scripts/generate-cli-reference.sh 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 from `mina` version `${{ steps.version.outputs.mina_version }}` (bookworm).

Generated by `scripts/generate-cli-reference.sh`.
branch: auto/cli-reference-update
base: main
Loading