Skip to content

Commit 09a2b40

Browse files
committed
Initial Commit
0 parents  commit 09a2b40

6 files changed

Lines changed: 413 additions & 0 deletions

File tree

.github/main/scripts/runner.sh

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
#!/usr/bin/env bash
2+
# ═══════════════════════════════════════════════════════════════════════════
3+
# Runner Setup Script - Installs dependencies for README animation workflow
4+
# Run this ONCE on the self-hosted runner
5+
# ═══════════════════════════════════════════════════════════════════════════
6+
7+
set -euo pipefail
8+
9+
echo "═══════════════════════════════════════════════════════════════════════════"
10+
echo " ARAS-Workspace Runner Setup"
11+
echo "═══════════════════════════════════════════════════════════════════════════"
12+
echo
13+
14+
# ─────────────────────────────────────────────────────────────
15+
# 1. Install asciinema
16+
# ─────────────────────────────────────────────────────────────
17+
18+
echo "[1/3] Installing asciinema..."
19+
20+
if command -v asciinema &>/dev/null; then
21+
echo " ✅ asciinema already installed: $(asciinema --version)"
22+
else
23+
apt-get update
24+
apt-get install -y asciinema
25+
echo " ✅ asciinema installed: $(asciinema --version)"
26+
fi
27+
28+
# ─────────────────────────────────────────────────────────────
29+
# 2. Install additional dependencies
30+
# ─────────────────────────────────────────────────────────────
31+
32+
echo "[2/3] Installing dependencies (jq, bc, curl)..."
33+
34+
apt-get install -y jq bc curl
35+
echo " ✅ Dependencies installed"
36+
37+
# ─────────────────────────────────────────────────────────────
38+
# 3. Build agg Docker image
39+
# ─────────────────────────────────────────────────────────────
40+
41+
echo "[3/3] Building agg Docker image..."
42+
43+
if docker images | grep -q "^agg "; then
44+
echo " ⚠️ agg image exists, rebuilding..."
45+
fi
46+
47+
docker build -t agg:latest https://github.com/asciinema/agg.git
48+
49+
echo " ✅ agg image built"
50+
51+
# ─────────────────────────────────────────────────────────────
52+
# Verification
53+
# ─────────────────────────────────────────────────────────────
54+
55+
echo
56+
echo "═══════════════════════════════════════════════════════════════════════════"
57+
echo " Verification"
58+
echo "═══════════════════════════════════════════════════════════════════════════"
59+
60+
echo -n "asciinema: "
61+
command -v asciinema && asciinema --version || echo "❌ NOT FOUND"
62+
63+
echo -n "docker: "
64+
command -v docker && docker --version || echo "❌ NOT FOUND"
65+
66+
echo -n "agg image: "
67+
docker images agg:latest --format "{{.Repository}}:{{.Tag}} ({{.Size}})" || echo "❌ NOT FOUND"
68+
69+
echo
70+
echo "═══════════════════════════════════════════════════════════════════════════"
71+
echo " ✅ Setup complete! Runner is ready for README animation workflow."
72+
echo "═══════════════════════════════════════════════════════════════════════════"
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Generate Intro Animation
2+
3+
on:
4+
workflow_dispatch:
5+
6+
push:
7+
branches: [main]
8+
paths:
9+
- 'scripts/workspace-intro.sh'
10+
11+
jobs:
12+
generate:
13+
runs-on: self-hosted
14+
15+
permissions:
16+
contents: write
17+
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v4
21+
22+
- name: Record animation
23+
run: |
24+
export TERM=xterm-256color
25+
chmod +x scripts/workspace-intro.sh
26+
27+
asciinema rec \
28+
--cols 120 \
29+
--rows 48 \
30+
--idle-time-limit 2 \
31+
-c "./scripts/workspace-intro.sh" \
32+
recording.cast
33+
34+
- name: Convert to GIF (Solarized Dark)
35+
run: |
36+
mkdir -p assets
37+
38+
docker run --rm \
39+
-v "$(pwd)":/data \
40+
-v "/home/runner/.local/share/fonts":/fonts:ro \
41+
agg:latest \
42+
--font-dir /fonts \
43+
--speed 1.5 \
44+
--fps-cap 15 \
45+
--theme solarized-dark \
46+
--last-frame-duration 3 \
47+
/data/recording.cast \
48+
/data/assets/intro.gif
49+
50+
- name: Commit
51+
run: |
52+
rm -f recording.cast
53+
54+
git config user.email "github-actions[bot]@users.noreply.github.com"
55+
git config user.name "github-actions[bot]"
56+
git add assets/intro.gif
57+
git diff --staged --quiet || git commit -m "chore: update intro animation"
58+
git push

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# █████╗ ██████╗ █████╗ ███████╗
2+
# ██╔══██╗██╔══██╗██╔══██╗██╔════╝
3+
# ███████║██████╔╝███████║███████╗
4+
# ██╔══██║██╔══██╗██╔══██║╚════██║
5+
# ██║ ██║██║ ██║██║ ██║███████║
6+
# ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝
7+
# Copyright (c) 2026 Rıza Emre ARAS <r.emrearas@proton.me>
8+
#
9+
# Python virtual environment
10+
.venv/
11+
12+
# Python cache and compiled files
13+
__pycache__/
14+
*.pyc
15+
*.pyo
16+
*.pyd
17+
.Python
18+
19+
# IDE and editor files
20+
.claude/
21+
.idea/
22+
.run/
23+
*.swp
24+
*.swo
25+
*~

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 ARAS Workspace
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# ARAS Workspace
2+
3+
---
4+
5+
![intro](../assets/intro.gif)

0 commit comments

Comments
 (0)