summaryrefslogtreecommitdiff
path: root/.github/workflows/sync-public-repo.yml
blob: 72549a46411fe8d1a4e0b345a4ce5421d628f2ec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
name: Sync Public Repo

on:
  push:
    tags:
      - 'v*'
    branches:
      - main
    paths:
      - 'install.sh'
      - 'k8s/daemon/**'
      - 'makima/cloudflare-agent/README.md'
  workflow_dispatch:

jobs:
  sync:
    name: Sync to soryu-co/makima
    runs-on: ubuntu-latest

    steps:
      - name: Checkout soryu repo
        uses: actions/checkout@v4

      - name: Checkout makima public repo
        uses: actions/checkout@v4
        with:
          repository: soryu-co/makima
          token: ${{ secrets.MAKIMA_RELEASE_TOKEN }}
          path: makima-public

      - name: Sync files
        run: |
          mkdir -p makima-public/k8s/daemon makima-public/docs

          cp install.sh makima-public/install.sh
          cp k8s/daemon/* makima-public/k8s/daemon/
          cp makima/cloudflare-agent/README.md makima-public/docs/cloudflare-agent.md

      - name: Generate README
        shell: bash
        run: |
          cat > makima-public/README.md <<'READMEEOF'
          # Makima

          **Distributed task orchestration for AI coding agents.**

          Makima coordinates work across multiple AI coding agents, enabling parallel task execution, contract-based workflows, and seamless integration with tools like Claude Code.

          ## Installation

          ### Quick Install (recommended)

          ```bash
          curl -fsSL https://raw.githubusercontent.com/soryu-co/makima/master/install.sh | bash
          ```

          The install script auto-detects your platform and downloads the latest release.

          ### Manual Download

          Download the latest release for your platform from the [Releases page](https://github.com/soryu-co/makima/releases).

          ### Supported Platforms

          | Platform          | Architecture |
          |-------------------|-------------|
          | Linux             | x86_64      |
          | Linux             | ARM64       |
          | macOS             | x86_64      |
          | macOS             | ARM64 (Apple Silicon) |

          After downloading, extract and install:

          ```bash
          tar xzf makima-*.tar.gz
          chmod +x makima
          sudo mv makima /usr/local/bin/
          ```

          ### Verify Installation

          ```bash
          makima --version
          ```

          ## Kubernetes Deployment

          Makima can run as a daemon in Kubernetes for persistent task execution. Manifests are provided in [`k8s/daemon/`](k8s/daemon/).

          The daemon container image is available at:

          ```
          ghcr.io/soryu-co/makima-daemon:latest
          ```

          Apply the manifests with kustomize:

          ```bash
          kubectl apply -k k8s/daemon/
          ```

          See [`k8s/daemon/README.md`](k8s/daemon/README.md) for full deployment instructions.

          ## Documentation

          - [Cloudflare Edge Agent](docs/cloudflare-agent.md) — Deploy a WebSocket relay on Cloudflare Workers for edge-based task dispatch

          ## License & Info

          Makima is developed by [soryu-co](https://github.com/soryu-co). For more information, visit the [soryu-co GitHub organization](https://github.com/soryu-co).
          READMEEOF

      - name: Commit and push
        working-directory: makima-public
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add -A
          if ! git diff --cached --quiet; then
            git commit -m "sync: update public files from soryu repo"
            git push
          else
            echo "No changes to sync"
          fi