Skip to content
Merged
Show file tree
Hide file tree
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
88 changes: 88 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Deploy to GitHub Pages

on:
push:
branches: ["main", "pipeline/hosted-strudel"]
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Generate Presentation (Pandoc)
run: |
mkdir _site
docker run --rm -v ${{ github.workspace }}:/data pandoc/core \
WORKSHOP.md -t revealjs -s -o _site/index.html \
-V theme=black -V revealjs-url=https://unpkg.com/reveal.js \
--slide-level=2 --css=doc/custom.css

- name: Copy Assets
run: |
mkdir -p _site/doc
cp doc/* _site/doc/

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 8

- name: Install Strudel Dependencies
working-directory: strudel
run: pnpm install

- name: Build Strudel
working-directory: strudel
env:
STRUDEL_SITE: "https://alienmind.github.io"
STRUDEL_BASE: "/algorave/strudel/"
# We run prebuild (Generate docs etc), then build website
run: |
pnpm run prebuild
cd website
pnpm run build

- name: Prepare Deployment Artifact
run: |
# Create directory for strudel and copy build result
mkdir -p _site/strudel
cp -r strudel/website/dist/* _site/strudel/

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '_site'

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
47 changes: 0 additions & 47 deletions .github/workflows/deploy_slides.yml

This file was deleted.

4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
node_modules
.DS_Store

# Generated Documentation & Examples
# Generated Documentation & Examples
web/public/examples/*.strudel
# web/public/presentation.html
dist/

# Next.js
web/.next/
web/out/
web/build/
.next/
.env
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ The project is a composite of:
This "hub" aims to integrate a conglomerate of useful tools for Algorave:

* [**strudel.cc**](https://strudel.cc) - The official Strudel website and player.
* [**Self-hosted Strudel**](https://alienmind.github.io/algorave/strudel/) - The local fork hosted on GitHub Pages.
* [**strudel-mcp-server**](https://github.com/williamzujkowski/strudel-mcp-server) - MCP Server for Strudel (local integration) (see also [npm page](https://libraries.io/npm/@williamzujkowski%2Fstrudel-mcp-server))
* [**midi-to-strudel**](https://github.com/alienmind/MIDI-To-Strudel) - Scripts to convert MIDI files to Strudel code.
* **Other useful stuff** - More integrations coming soon!
Expand Down
4 changes: 2 additions & 2 deletions WORKSHOP.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ A **1-hour workshop** exploring how to create music with code using Strudel.

## 🔗 Links

**Strudel**: [https://strudel.cc](https://strudel.cc)
**Strudel**: [https://strudel.cc](https://strudel.cc) || [Self-hosted option](https://alienmind.github.io/algorave/strudel/)
(install the PWA for best performance)

**Site Gallery / Tutorial**: [https://strudel.patternclub.org/workshop/site-gallery](https://strudel.patternclub.org/workshop/site-gallery)
Expand Down Expand Up @@ -152,7 +152,7 @@ Add the server to your configuration (~/.gemini/settings.json)
Open up side by side:

* [MCP Strudel Website](https://mcp-strudel.mcp.mathplosion.com/strudel/)
* Optionally: [Strudel.cc](https://strudel.cc/) - not accessible with ECB laptops
* Optionally: Use my [Strudel.cc fork](https://alienmind.github.io/algorave/strudel/) (or [Official Strudel.cc](https://strudel.cc/) - not accessible with corporate laptops)
* Any terminal with Gemini CLI
* Pick the session_id from MCP, paste it to LLM as first prompt: "Use session_id: xxxx for Strudel operations" so it can interact with MCP server window

Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ services:
image: pandoc/core
volumes:
- .:/data
command: [ "WORKSHOP.md", "-t", "revealjs", "-s", "-o", "web/public/presentation.html", "-V", "theme=black", "-V", "revealjs-url=https://unpkg.com/reveal.js", "--slide-level=2", "--css=doc/custom.css" ]
command: [ "WORKSHOP.md", "-t", "revealjs", "-s", "-o", "dist/presentation.html", "-V", "theme=black", "-V", "revealjs-url=https://unpkg.com/reveal.js", "--slide-level=2", "--css=doc/custom.css" ]

networks:
algorave_network:
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"docker:build-base": "docker build -t algorave/mcp-base:latest -f strudel-mcp-server/Dockerfile strudel-mcp-server",
"docker:up": "npm run docker:build-base && docker-compose up --build",
"docker:down": "docker-compose down",
"docs": "docker-compose run --rm docs && npm run sync-docs",
"prebuild": "mkdir -p dist",
"docs": "npm run prebuild && docker-compose run --rm docs && npm run sync-docs",
"generate-diagram": "node scripts/generate-diagram.js",
"sync-docs": "node scripts/sync-docs.js",
"sync-examples": "node scripts/sync-examples.js",
Expand Down
2 changes: 1 addition & 1 deletion scripts/sync-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ const fs = require('fs');
const path = require('path');

const srcDocDir = path.join(__dirname, '..', 'doc');
const destPublicDir = path.join(__dirname, '..', 'web', 'public');
const destPublicDir = path.join(__dirname, '..', 'dist');
const destDocDir = path.join(destPublicDir, 'doc');

function copyFile(src, dest) {
Expand Down
Binary file removed web/public/doc/algorave.png
Binary file not shown.
Binary file removed web/public/doc/architecture.png
Binary file not shown.
Binary file removed web/public/doc/codespaces.png
Binary file not shown.
56 changes: 0 additions & 56 deletions web/public/doc/custom.css

This file was deleted.

Binary file removed web/public/doc/gemini.png
Binary file not shown.
Binary file removed web/public/doc/logo.png
Binary file not shown.
Binary file removed web/public/doc/meme.png
Binary file not shown.
Loading