mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-11-12 23:19:08 -05:00
Added Github action for generating the dependency graph
This commit is contained in:
parent
02e9aec1a6
commit
4765fe75ef
32
.github/workflows/dependency_graph.sh
vendored
Executable file
32
.github/workflows/dependency_graph.sh
vendored
Executable file
|
@ -0,0 +1,32 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Create graph dot file
|
||||
echo "digraph {" > dependency_graph.dot
|
||||
|
||||
# Loop over files in current directory starting with two or more numbers and ending in .md
|
||||
for file in [0-9][0-9]*.md; do
|
||||
# Check if file exists
|
||||
if [ -e "$file" ]; then
|
||||
|
||||
current_nip=$(echo $file | grep -o "^[0-9]\+")
|
||||
|
||||
# Add NIP label for node
|
||||
title=$(echo "$(head -n 1 "$file"): $(sed '4q;d' "$file" | sed 's/"/\\"/g' | sed 's/\`//g')")
|
||||
echo -e "\t${current_nip} [label=\"${title}\"]" >> dependency_graph.dot
|
||||
|
||||
# Extract NIP dependencies
|
||||
depends=$(grep -o "depends:[0-9]\+" "$file" | grep -o "[0-9]\+")
|
||||
if [ -n "$depends" ]; then
|
||||
# Add graph dependency edge
|
||||
for dep_nip in $depends; do
|
||||
echo -e "\t${current_nip}->${dep_nip}" >> dependency_graph.dot
|
||||
done
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Close graph file
|
||||
echo -n "}" >> dependency_graph.dot
|
||||
|
||||
# Generate dependency graph
|
||||
dot -Tsvg dependency_graph.dot > dependency_graph.svg
|
32
.github/workflows/dependency_graph.yaml
vendored
Normal file
32
.github/workflows/dependency_graph.yaml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
# This is a basic workflow to help you get started with GitHub Actions
|
||||
|
||||
name: Generate NIPs dependency graph
|
||||
|
||||
# Controls when the action will run. Triggers the workflow on push or pull request
|
||||
# events but only for the main branch
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||
jobs:
|
||||
|
||||
build-on-ubuntu:
|
||||
# The type of runner that the job will run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
# Steps represent a sequence of tasks that will be executed as part of the job
|
||||
steps:
|
||||
|
||||
- name: step 1 - Checkout the main GitHub branch
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Step 2 - Install Graphviz
|
||||
run: echo "TODO"
|
||||
# sh ./.github/workflows/dependency_graph.sh
|
||||
|
||||
- name: Step 3 - Generate dependency graph svg
|
||||
run: sh ./.github/workflows/dependency_graph.sh
|
||||
|
||||
- name: Step 4 - Do something with image
|
||||
run: dot -Tsvg dependency_graph.dot > dependency_graph.svg
|
Loading…
Reference in New Issue
Block a user