Skip to content

Commit 993f9fa

Browse files
author
GitHub Copilot CLI
committed
Optimize devcontainer CI build time and setup
1 parent 897f035 commit 993f9fa

4 files changed

Lines changed: 31 additions & 33 deletions

File tree

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ FROM system-base AS dev-tools
4545
ENV npm_config_cache=/tmp/npm-cache
4646
RUN --mount=type=cache,target=/tmp/npm-cache \
4747
# 並列npm install(依存関係なし)
48-
npm install -g --prefer-offline opencode-ai & \
48+
npm install -g --prefer-offline @opencode-ai/cli & \
4949
npm install -g --prefer-offline @openchamber/web & \
5050
npm install -g --prefer-offline ecc-universal & \
5151
# 並列処理完了待ち

.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/cli &
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: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,22 @@ 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+
cacheFrom: type=gha
24+
cacheTo: type=gha,mode=max
25+
push: never
4526
runCmd: |
4627
# Node.js バージョン確認
4728
node --version

0 commit comments

Comments
 (0)