Skip to content

Commit bb5cf8e

Browse files
authored
Merge pull request #4 from fjmrytfjsn/chore/devcontainer-ci-speedup
Optimize DevContainer CI build time
2 parents 897f035 + b37e43e commit bb5cf8e

4 files changed

Lines changed: 29 additions & 32 deletions

File tree

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"installZsh": true,
1010
"configureZshAsDefaultShell": true,
1111
"installOhMyZsh": true,
12-
"upgradePackages": true,
12+
"upgradePackages": false,
1313
"username": "vscode",
1414
"userUid": "automatic",
1515
"userGid": "automatic"

.devcontainer/setup.sh

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,29 +49,46 @@ if [ -f "$WORKSPACE_ROOT/.env" ]; then
4949
load_env_file "$WORKSPACE_ROOT/.env"
5050
fi
5151

52-
# OpenCode CLI の確認・インストール
52+
# OpenCode/OpenChamber/ECC の確認・インストール
5353
echo "🛠️ OpenCode CLI セットアップ..."
54+
declare -a INSTALL_PIDS=()
55+
declare -a INSTALL_NAMES=()
56+
5457
if ! command -v opencode &> /dev/null; then
5558
echo " OpenCode CLI をインストール中..."
56-
npm install -g @opencode-ai/cli
59+
npm install -g opencode-ai &
60+
INSTALL_PIDS+=("$!")
61+
INSTALL_NAMES+=("OpenCode CLI")
5762
else
5863
echo " ✅ OpenCode CLI 既にインストール済み: $(opencode --version)"
5964
fi
6065

61-
# OpenChamber の確認・インストール
6266
echo "🌐 OpenChamber セットアップ..."
6367
if ! command -v openchamber &> /dev/null; then
6468
echo " OpenChamber をインストール中..."
65-
npm install -g @openchamber/web
69+
npm install -g @openchamber/web &
70+
INSTALL_PIDS+=("$!")
71+
INSTALL_NAMES+=("OpenChamber")
6672
else
6773
echo " ✅ OpenChamber 既にインストール済み"
6874
fi
6975

70-
# ECC の確認・インストール・設定
7176
echo "🎯 ECC (Everything Claude Code) セットアップ..."
7277
if ! command -v ecc &> /dev/null; then
7378
echo " ECC をインストール中..."
74-
npm install -g ecc-universal
79+
npm install -g ecc-universal &
80+
INSTALL_PIDS+=("$!")
81+
INSTALL_NAMES+=("ECC")
82+
fi
83+
84+
if [ ${#INSTALL_PIDS[@]} -gt 0 ]; then
85+
echo " ⏳ 依存ツールのインストール完了待機中..."
86+
for i in "${!INSTALL_PIDS[@]}"; do
87+
if ! wait "${INSTALL_PIDS[$i]}"; then
88+
echo "${INSTALL_NAMES[$i]} のインストールに失敗しました"
89+
exit 1
90+
fi
91+
done
7592
fi
7693

7794
# ECC の設定適用

.github/workflows/test.yml

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,20 @@ on:
77
branches: [main]
88

99
jobs:
10-
test-devcontainer:
10+
test-devcontainer-services:
1111
runs-on: ubuntu-latest
12-
13-
steps:
14-
- name: Checkout
15-
uses: actions/checkout@v4
16-
17-
- name: Setup Docker Buildx
18-
uses: docker/setup-buildx-action@v3
19-
20-
- name: Build DevContainer
21-
uses: devcontainers/ci@v0.3
22-
with:
23-
imageName: opencode-ecc-devcontainer
24-
cacheFrom: opencode-ecc-devcontainer
25-
push: never
26-
27-
- name: Test DevContainer Build
28-
run: |
29-
echo "✅ DevContainer ビルド成功"
30-
31-
test-services:
32-
runs-on: ubuntu-latest
33-
needs: test-devcontainer
3412
env:
3513
CI_MODE: "1"
3614

3715
steps:
3816
- name: Checkout
39-
uses: actions/checkout@v4
17+
uses: actions/checkout@v6
4018

41-
- name: Test DevContainer Services
19+
- name: Build and Test DevContainer Services
4220
uses: devcontainers/ci@v0.3
4321
with:
4422
imageName: opencode-ecc-devcontainer
23+
push: never
4524
runCmd: |
4625
# Node.js バージョン確認
4726
node --version

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ temp/
4141

4242
# Docker関連
4343
.docker/
44+
.devcontainer/.setup-complete
4445

4546
# Tailscale状態(セキュリティ)
4647
*.key

0 commit comments

Comments
 (0)