Skip to content

Commit c83a7cb

Browse files
committed
Modularized build pipeline and added bmp images
1 parent dec1262 commit c83a7cb

22 files changed

Lines changed: 657 additions & 435 deletions

.github/workflows/build-all-platforms.yml

Lines changed: 0 additions & 434 deletions
This file was deleted.

.github/workflows/build-all.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Build All Platforms
2+
3+
on:
4+
workflow_dispatch: # Manual trigger only
5+
6+
jobs:
7+
trigger-builds:
8+
name: Trigger All Platform Builds
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Trigger Windows Build
13+
uses: actions/github-script@v7
14+
with:
15+
script: |
16+
await github.rest.actions.createWorkflowDispatch({
17+
owner: context.repo.owner,
18+
repo: context.repo.repo,
19+
workflow_id: 'build-windows.yml',
20+
ref: context.ref
21+
});
22+
23+
- name: Trigger macOS Build
24+
uses: actions/github-script@v7
25+
with:
26+
script: |
27+
await github.rest.actions.createWorkflowDispatch({
28+
owner: context.repo.owner,
29+
repo: context.repo.repo,
30+
workflow_id: 'build-macos.yml',
31+
ref: context.ref
32+
});
33+
34+
- name: Trigger Linux Build
35+
uses: actions/github-script@v7
36+
with:
37+
script: |
38+
await github.rest.actions.createWorkflowDispatch({
39+
owner: context.repo.owner,
40+
repo: context.repo.repo,
41+
workflow_id: 'build-linux.yml',
42+
ref: context.ref
43+
});
44+
45+
- name: Summary
46+
run: |
47+
echo "✅ Triggered all platform builds!"
48+
echo "Check the Actions tab to see individual workflows running."

.github/workflows/build-linux.yml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
name: Build Linux
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
workflow_dispatch: # Manual trigger
9+
10+
jobs:
11+
build-linux-x64:
12+
name: Build Linux (x64)
13+
runs-on: ubuntu-latest
14+
timeout-minutes: 120
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version-file: '.nvmrc'
24+
cache: 'npm'
25+
26+
- name: Setup Python 3
27+
uses: actions/setup-python@v6
28+
with:
29+
python-version: '3.11'
30+
31+
- name: Install tsx (TypeScript runner)
32+
run: npm install -g tsx
33+
34+
- name: Setup GCC
35+
uses: egor-tensin/setup-gcc@v1
36+
with:
37+
version: 10
38+
platform: x64
39+
40+
- name: Install build dependencies
41+
run: |
42+
sudo apt-get update
43+
sudo apt-get install -y \
44+
dpkg-dev \
45+
fakeroot \
46+
build-essential \
47+
pkg-config \
48+
libkrb5-dev
49+
50+
- name: Run preinstall script manually
51+
run: tsx build/npm/preinstall.ts
52+
53+
- name: Install dependencies (skip scripts)
54+
env:
55+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
56+
run: npm install --ignore-scripts
57+
58+
- name: Run postinstall script manually
59+
env:
60+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61+
run: tsx build/npm/postinstall.ts
62+
63+
- name: Install roopik-roo extension dependencies
64+
working-directory: extensions/roopik-roo
65+
run: |
66+
if ! npm install; then
67+
echo "Normal install failed, trying with --legacy-peer-deps..."
68+
npm install --legacy-peer-deps
69+
node ../../.github/scripts/install-all-peer-deps.js || true
70+
fi
71+
72+
- name: Install @roo-code/types dependencies
73+
working-directory: extensions/roopik-roo/packages/types
74+
run: npm install
75+
76+
- name: Build @roo-code/types package
77+
working-directory: extensions/roopik-roo/packages/types
78+
run: npm run build
79+
80+
- name: Install @roo-code/build dependencies
81+
working-directory: extensions/roopik-roo/packages/build
82+
run: npm install
83+
84+
- name: Build @roo-code/build package
85+
working-directory: extensions/roopik-roo/packages/build
86+
run: npm run build
87+
88+
- name: Create .env file for roopik-roo
89+
working-directory: extensions/roopik-roo
90+
env:
91+
ROO_CODE_API_URL: ${{ secrets.ROO_CODE_API_URL || 'https://app.roocode.com' }}
92+
ROO_CODE_PROVIDER_URL: ${{ secrets.ROO_CODE_PROVIDER_URL || 'https://app.roocode.com/proxy/v1' }}
93+
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY || '' }}
94+
run: |
95+
cat > .env << EOF
96+
ROO_CODE_API_URL=${ROO_CODE_API_URL}
97+
ROO_CODE_PROVIDER_URL=${ROO_CODE_PROVIDER_URL}
98+
POSTHOG_API_KEY=${POSTHOG_API_KEY}
99+
EOF
100+
101+
- name: Build roopik-roo extension
102+
working-directory: extensions/roopik-roo
103+
run: npm run build
104+
105+
- name: Install roopik extension dependencies (skip postinstall)
106+
working-directory: extensions/roopik
107+
run: npm install --ignore-scripts
108+
109+
- name: Install roopik webview dependencies
110+
working-directory: extensions/roopik/webview
111+
run: npm install
112+
113+
- name: Build roopik extension
114+
working-directory: extensions/roopik
115+
run: npm run build
116+
117+
- name: Compile VS Code
118+
run: npm run compile-build
119+
120+
- name: Build Linux application (x64)
121+
run: npm run gulp vscode-linux-x64
122+
123+
- name: Build DEB package (custom)
124+
env:
125+
APP_NAME: roopik
126+
VSCODE_ARCH: x64
127+
run: bash .github/build/linux/package_roopik_deb.sh
128+
continue-on-error: true
129+
130+
- name: Copy Linux build to workspace
131+
run: |
132+
mkdir -p .artifacts/installer
133+
134+
# Copy and rename portable version
135+
cp -r ../VSCode-linux-x64 ./Roopik-Portable-linux-x64
136+
137+
# Copy DEB file if it exists
138+
DEB_FILE=$(find .build/linux/deb -name "roopik_*.deb" -type f | head -n 1)
139+
if [ -n "$DEB_FILE" ]; then
140+
echo "Found DEB file: $DEB_FILE"
141+
cp "$DEB_FILE" .artifacts/installer/
142+
else
143+
echo "Warning: DEB file not found, skipping installer artifact"
144+
fi
145+
146+
# List what we're uploading
147+
echo "Artifact contents:"
148+
ls -lah Roopik-Portable-linux-x64/
149+
ls -lah .artifacts/
150+
151+
- name: Upload Linux artifacts (x64)
152+
uses: actions/upload-artifact@v4
153+
with:
154+
name: roopik-linux-x64
155+
path: |
156+
Roopik-Portable-linux-x64/
157+
.artifacts/installer/
158+
retention-days: 30

.github/workflows/build-macos.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Build macOS
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
workflow_dispatch: # Manual trigger
9+
10+
jobs:
11+
build-macos-arm64:
12+
name: Build macOS (ARM64)
13+
runs-on: macos-latest
14+
timeout-minutes: 120
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Setup Node.js
21+
uses: actions/setup-node@v4
22+
with:
23+
node-version-file: '.nvmrc'
24+
cache: 'npm'
25+
26+
- name: Setup Python 3
27+
uses: actions/setup-python@v6
28+
with:
29+
python-version: '3.11'
30+
31+
- name: Install tsx (TypeScript runner)
32+
run: npm install -g tsx
33+
34+
- name: Run preinstall script manually
35+
run: tsx build/npm/preinstall.ts
36+
37+
- name: Install dependencies (skip scripts)
38+
env:
39+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
40+
run: npm install --ignore-scripts
41+
42+
- name: Run postinstall script manually
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
run: tsx build/npm/postinstall.ts
46+
47+
- name: Install roopik-roo extension dependencies
48+
working-directory: extensions/roopik-roo
49+
run: |
50+
if ! npm install; then
51+
echo "Normal install failed, trying with --legacy-peer-deps..."
52+
npm install --legacy-peer-deps
53+
node ../../.github/scripts/install-all-peer-deps.js || true
54+
fi
55+
56+
- name: Install @roo-code/types dependencies
57+
working-directory: extensions/roopik-roo/packages/types
58+
run: npm install
59+
60+
- name: Build @roo-code/types package
61+
working-directory: extensions/roopik-roo/packages/types
62+
run: npm run build
63+
64+
- name: Install @roo-code/build dependencies
65+
working-directory: extensions/roopik-roo/packages/build
66+
run: npm install
67+
68+
- name: Build @roo-code/build package
69+
working-directory: extensions/roopik-roo/packages/build
70+
run: npm run build
71+
72+
- name: Create .env file for roopik-roo
73+
working-directory: extensions/roopik-roo
74+
env:
75+
ROO_CODE_API_URL: ${{ secrets.ROO_CODE_API_URL || 'https://app.roocode.com' }}
76+
ROO_CODE_PROVIDER_URL: ${{ secrets.ROO_CODE_PROVIDER_URL || 'https://app.roocode.com/proxy/v1' }}
77+
POSTHOG_API_KEY: ${{ secrets.POSTHOG_API_KEY || '' }}
78+
run: |
79+
cat > .env << EOF
80+
ROO_CODE_API_URL=${ROO_CODE_API_URL}
81+
ROO_CODE_PROVIDER_URL=${ROO_CODE_PROVIDER_URL}
82+
POSTHOG_API_KEY=${POSTHOG_API_KEY}
83+
EOF
84+
85+
- name: Build roopik-roo extension
86+
working-directory: extensions/roopik-roo
87+
run: npm run build
88+
89+
- name: Install roopik extension dependencies (skip postinstall)
90+
working-directory: extensions/roopik
91+
run: npm install --ignore-scripts
92+
93+
- name: Install roopik webview dependencies
94+
working-directory: extensions/roopik/webview
95+
run: npm install
96+
97+
- name: Build roopik extension
98+
working-directory: extensions/roopik
99+
run: npm run build
100+
101+
- name: Compile VS Code
102+
run: npm run compile-build
103+
104+
- name: Build macOS application (arm64)
105+
run: npm run gulp vscode-darwin-arm64
106+
107+
- name: Copy macOS build to workspace
108+
run: |
109+
mkdir -p .artifacts
110+
cp -r ../VSCode-darwin-arm64 ./Roopik-Portable-darwin-arm64
111+
112+
- name: Upload macOS artifacts (arm64)
113+
uses: actions/upload-artifact@v4
114+
with:
115+
name: roopik-macos-arm64
116+
path: Roopik-Portable-darwin-arm64/
117+
retention-days: 30

0 commit comments

Comments
 (0)