diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index fba1ebf..fb1415e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -9,7 +9,7 @@ "installZsh": true, "configureZshAsDefaultShell": true, "installOhMyZsh": true, - "upgradePackages": true, + "upgradePackages": false, "username": "vscode", "userUid": "automatic", "userGid": "automatic" diff --git a/.devcontainer/setup.sh b/.devcontainer/setup.sh index 239a61c..ce209e0 100755 --- a/.devcontainer/setup.sh +++ b/.devcontainer/setup.sh @@ -49,29 +49,46 @@ if [ -f "$WORKSPACE_ROOT/.env" ]; then load_env_file "$WORKSPACE_ROOT/.env" fi -# OpenCode CLI の確認・インストール +# OpenCode/OpenChamber/ECC の確認・インストール echo "🛠️ OpenCode CLI セットアップ..." +declare -a INSTALL_PIDS=() +declare -a INSTALL_NAMES=() + if ! command -v opencode &> /dev/null; then echo " OpenCode CLI をインストール中..." - npm install -g @opencode-ai/cli + npm install -g opencode-ai & + INSTALL_PIDS+=("$!") + INSTALL_NAMES+=("OpenCode CLI") else echo " ✅ OpenCode CLI 既にインストール済み: $(opencode --version)" fi -# OpenChamber の確認・インストール echo "🌐 OpenChamber セットアップ..." if ! command -v openchamber &> /dev/null; then echo " OpenChamber をインストール中..." - npm install -g @openchamber/web + npm install -g @openchamber/web & + INSTALL_PIDS+=("$!") + INSTALL_NAMES+=("OpenChamber") else echo " ✅ OpenChamber 既にインストール済み" fi -# ECC の確認・インストール・設定 echo "🎯 ECC (Everything Claude Code) セットアップ..." if ! command -v ecc &> /dev/null; then echo " ECC をインストール中..." - npm install -g ecc-universal + npm install -g ecc-universal & + INSTALL_PIDS+=("$!") + INSTALL_NAMES+=("ECC") +fi + +if [ ${#INSTALL_PIDS[@]} -gt 0 ]; then + echo " ⏳ 依存ツールのインストール完了待機中..." + for i in "${!INSTALL_PIDS[@]}"; do + if ! wait "${INSTALL_PIDS[$i]}"; then + echo " ❌ ${INSTALL_NAMES[$i]} のインストールに失敗しました" + exit 1 + fi + done fi # ECC の設定適用 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 38bcc20..9262267 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,41 +7,20 @@ on: branches: [main] jobs: - test-devcontainer: + test-devcontainer-services: runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build DevContainer - uses: devcontainers/ci@v0.3 - with: - imageName: opencode-ecc-devcontainer - cacheFrom: opencode-ecc-devcontainer - push: never - - - name: Test DevContainer Build - run: | - echo "✅ DevContainer ビルド成功" - - test-services: - runs-on: ubuntu-latest - needs: test-devcontainer env: CI_MODE: "1" steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - - name: Test DevContainer Services + - name: Build and Test DevContainer Services uses: devcontainers/ci@v0.3 with: imageName: opencode-ecc-devcontainer + push: never runCmd: | # Node.js バージョン確認 node --version diff --git a/.gitignore b/.gitignore index de9aa4f..ad04332 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ temp/ # Docker関連 .docker/ +.devcontainer/.setup-complete # Tailscale状態(セキュリティ) *.key