Skip to content

Commit

Permalink
Add libgraph visualization
Browse files Browse the repository at this point in the history
  • Loading branch information
dustessavdh committed Aug 20, 2024
1 parent 049f6ff commit b4323ad
Show file tree
Hide file tree
Showing 18 changed files with 3,057 additions and 695 deletions.
4 changes: 4 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Used by "mix format"
[
inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
]
78 changes: 78 additions & 0 deletions .github/workflows/branch-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: build
run-name: Build kino_libgraph - ${{ github.event.pull_request.title || github.event.head_commit.message || github.ref }}

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:
name: Install Dependencies Elixir ${{ matrix.elixir }} OTP ${{ matrix.otp }} - ${{ matrix.os }}
runs-on: ${{ matrix.os }}

strategy:
matrix:
elixir: [1.17.2]
otp: [25.3]
node: [20.16]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v4

- name: Setup Elixir
uses: erlef/setup-beam@v1.17.5
with:
otp-version: ${{ matrix.otp }}
elixir-version: ${{ matrix.elixir }}

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Cache elixir deps
id: mix_cache
uses: actions/cache@v4
with:
path: |
deps
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
restore-keys: ${{ runner.os }}-${{ matrix.elixir }}-${{ matrix.otp }}-mix-

- name: Install dependencies
if: steps.mix_cache.outputs.cache-hit != 'true'
run: mix deps.get

- name: Compile dependencies
if: steps.mix_cache.outputs.cache-hit != 'true'
run: mix deps.compile --warnings-as-errors

- name: Cache Node modules
id: node_cache
uses: actions/cache@v4
with:
path: |
assets/vis-network/node_modules
key: ${{ runner.os }}-${{ matrix.node }}-${{ hashFiles('assets/vis-network/package-lock.json') }}
restore-keys: ${{ runner.os }}-${{ matrix.node }}-node-

- name: Install Node dependencies
if: steps.node_cache.outputs.cache-hit != 'true'
run: npm ci --prefix assets/vis-network

- name: check Node dependencies
run: npm outdated --prefix assets/vis-network

- name: audit Node dependencies
run: npm audit --prefix assets/vis-network

- name: Build assets
run: npm run build --prefix assets/vis-network

- name: Build project
run: mix compile
83 changes: 83 additions & 0 deletions .github/workflows/release-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: publish
run-name: Publish kino_libgraph - ${{ github.event.pull_request.title || github.event.head_commit.message || github.ref }}

on:
push:
tags:
- v*

jobs:
build:
name: Install Dependencies Elixir ${{ matrix.elixir }} OTP ${{ matrix.otp }} - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
environment:
name: production
url: https://hex.pm/packages/kino_libgraph

strategy:
matrix:
elixir: [1.17.2]
otp: [25.3]
node: [20.16]
os: [ubuntu-latest]

steps:
- uses: actions/checkout@v4

- name: Setup Elixir
uses: erlef/setup-beam@v1.17.5
with:
otp-version: ${{ matrix.otp }}
elixir-version: ${{ matrix.elixir }}

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}

- name: Cache elixir deps
id: mix_cache
uses: actions/cache@v4
with:
path: |
deps
key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}
restore-keys: ${{ runner.os }}-${{ matrix.elixir }}-${{ matrix.otp }}-mix-

- name: Install dependencies
if: steps.mix_cache.outputs.cache-hit != 'true'
run: mix deps.get

- name: Compile dependencies
if: steps.mix_cache.outputs.cache-hit != 'true'
run: mix deps.compile --warnings-as-errors

- name: Cache Node modules
id: node_cache
uses: actions/cache@v4
with:
path: |
assets/vis-network/node_modules
key: ${{ runner.os }}-${{ matrix.node }}-${{ hashFiles('assets/vis-network/package-lock.json') }}
restore-keys: ${{ runner.os }}-${{ matrix.node }}-node-

- name: Install Node dependencies
if: steps.node_cache.outputs.cache-hit != 'true'
run: npm ci --prefix assets/vis-network

- name: check Node dependencies
run: npm outdated --prefix assets/vis-network

- name: audit Node dependencies
run: npm audit --prefix assets/vis-network

- name: Build assets
run: npm run build --prefix assets/vis-network

- name: Build project
run: mix compile

- name: Publish to Hex
run: mix hex.publish --yes
env:
HEX_API_KEY: ${{ secrets.HEX_API_KEY }}
82 changes: 49 additions & 33 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,36 +1,52 @@
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
bld/
[Bb]in/
[Oo]bj/
[Bb]uild/

# Visual Studio
.vs/
Generated\ Files/

# Visual Studio Code
.vscode/*
!.vscode/tasks.json
*.code-workspace
!.vscode/*.code-snippets

# Logs
[Ll]og/
[Ll]ogs/
*.log

# Dependencies
node_modules/

# Coverage
coverage
*.lcov
# The directory Mix will write compiled artifacts to.
/_build/

# If you run "mix test --cover", coverage assets end up here.
/cover/

# The directory Mix downloads your dependencies sources to.
/deps/

# Where third-party dependencies like ExDoc output generated docs.
/doc/

# Ignore .fetch files in case you like to edit your project deps locally.
/.fetch

# If the VM crashes, it generates a dump, let's ignore it too.
erl_crash.dump

# Also ignore archive artifacts (built via "mix archive.build").
*.ez

# Ignore package tarball (built via "mix hex.build").
deepl_ex-*.tar

# Temporary files, for example, from tests.
/tmp/

# Ignore package tarball (built via "mix hex.build").
deepl_ex-*.tar

# Ignore language server files
.elixir_ls/
.elixir-tools/

# Ignore PLT files (used by Dialyzer).
/priv/plts/*.plt
/priv/plts/*.plt.hash

# Other
*.beam

# Secrets
/config/*.secret.exs
.env
appsettings.json
env/

# Editors
/.idea/
/.vscode/

# JavaScript
**/node_modules/
**/build/
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Changelog

## v0.1.0 (2024-08-20)

- Initial release
- Add visualization for directed and undirected graphs
Loading

0 comments on commit b4323ad

Please sign in to comment.