From cef2874b8c3c455beddf928c949934d78532aff9 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Wed, 20 May 2026 16:43:41 +0900 Subject: [PATCH 1/6] Add CI and auto-review instructions --- .github/ci/SharedDesignSystem/Package.swift | 22 +++ .../SharedDesignSystem.swift | 164 ++++++++++++++++++ .github/workflows/ci.yml | 141 +++++++++++---- AGENTS.md | 118 +++++++++++++ 4 files changed, 408 insertions(+), 37 deletions(-) create mode 100644 .github/ci/SharedDesignSystem/Package.swift create mode 100644 .github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift create mode 100644 AGENTS.md diff --git a/.github/ci/SharedDesignSystem/Package.swift b/.github/ci/SharedDesignSystem/Package.swift new file mode 100644 index 0000000..f6b398e --- /dev/null +++ b/.github/ci/SharedDesignSystem/Package.swift @@ -0,0 +1,22 @@ +// swift-tools-version: 5.10 + +import PackageDescription + +let package = Package( + name: "SharedDesignSystem", + platforms: [ + .iOS(.v16), + .macOS(.v13), + .watchOS(.v9), + .tvOS(.v16) + ], + products: [ + .library( + name: "SharedDesignSystem", + targets: ["SharedDesignSystem"]), + ], + targets: [ + .target( + name: "SharedDesignSystem"), + ] +) diff --git a/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift b/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift new file mode 100644 index 0000000..654cce0 --- /dev/null +++ b/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift @@ -0,0 +1,164 @@ +import SwiftUI + +public struct TYButtonStyle: ButtonStyle { + public init() {} + + public func makeBody(configuration: Self.Configuration) -> some View { + configuration.label + .padding(.all, 8.0) + .overlay(RoundedRectangle(cornerRadius: 10) + .stroke(Color.red, lineWidth: 1.0) + .frame(width: 200, height: 50, alignment: .center) + ) + .scaleEffect(configuration.isPressed ? 0.9 : 1.0) + } +} + +public struct TYTextFieldStyle: TextFieldStyle { + public init() {} + + public func _body(configuration: TextField) -> some View { + configuration + .padding(.horizontal, 8.0) + .padding(.vertical, 16.0) + .background(RoundedRectangle(cornerRadius: 10) + .strokeBorder(Color.red, lineWidth: 1.0)) + } +} + +public struct TestySceneBackground: View { + public init() {} + + public var body: some View { + LinearGradient( + colors: [ + Color(red: 0.07, green: 0.11, blue: 0.22), + Color(red: 0.12, green: 0.32, blue: 0.48), + Color(red: 0.78, green: 0.88, blue: 0.94) + ], + startPoint: .topLeading, + endPoint: .bottomTrailing + ) + .overlay(alignment: .topLeading) { + Circle() + .fill(Color.white.opacity(0.20)) + .frame(width: 280, height: 280) + .blur(radius: 24) + .offset(x: -70, y: -110) + } + .overlay(alignment: .bottomTrailing) { + Circle() + .fill(Color.cyan.opacity(0.22)) + .frame(width: 340, height: 340) + .blur(radius: 30) + .offset(x: 70, y: 120) + } + .ignoresSafeArea() + } +} + +public struct TestyGlassButtonStyle: ButtonStyle { + public init() {} + + public func makeBody(configuration: Configuration) -> some View { + configuration.label + .font(.headline) + .foregroundStyle(.primary) + .frame(maxWidth: .infinity) + .frame(minHeight: 54) + .padding(.horizontal, 18) + .background { + Group { + if #available(iOS 26.0, macOS 26.0, *) { + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(.clear) + .glassEffect(.regular.tint(.white.opacity(0.18)).interactive(), in: .rect(cornerRadius: 20)) + } else { + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(.ultraThinMaterial) + } + } + } + .overlay { + RoundedRectangle(cornerRadius: 20, style: .continuous) + .stroke(Color.white.opacity(0.28), lineWidth: 1) + } + .scaleEffect(configuration.isPressed ? 0.97 : 1.0) + .opacity(configuration.isPressed ? 0.92 : 1.0) + .animation(.easeOut(duration: 0.18), value: configuration.isPressed) + } +} + +public struct TestyGlassTextFieldStyle: TextFieldStyle { + public init() {} + + public func _body(configuration: TextField) -> some View { + configuration + .padding(.horizontal, 14) + .padding(.vertical, 14) + .background { + Group { + if #available(iOS 26.0, macOS 26.0, *) { + RoundedRectangle(cornerRadius: 18, style: .continuous) + .fill(.clear) + .glassEffect(.regular.tint(.white.opacity(0.08)), in: .rect(cornerRadius: 18)) + } else { + RoundedRectangle(cornerRadius: 18, style: .continuous) + .fill(.ultraThinMaterial) + } + } + } + .overlay { + RoundedRectangle(cornerRadius: 18, style: .continuous) + .stroke(Color.white.opacity(0.22), lineWidth: 1) + } + } +} + +public struct TestyScreenModifier: ViewModifier { + public init() {} + + public func body(content: Content) -> some View { + ZStack { + TestySceneBackground() + content + } + .toolbarBackground(.hidden, for: .navigationBar) + } +} + +public struct TestyGlassCardModifier: ViewModifier { + public init() {} + + public func body(content: Content) -> some View { + content + .padding(18) + .background { + Group { + if #available(iOS 26.0, macOS 26.0, *) { + RoundedRectangle(cornerRadius: 28, style: .continuous) + .fill(.clear) + .glassEffect(.regular.tint(.white.opacity(0.10)), in: .rect(cornerRadius: 28)) + } else { + RoundedRectangle(cornerRadius: 28, style: .continuous) + .fill(.ultraThinMaterial) + } + } + } + .overlay { + RoundedRectangle(cornerRadius: 28, style: .continuous) + .stroke(Color.white.opacity(0.22), lineWidth: 1) + } + .shadow(color: .black.opacity(0.12), radius: 20, y: 10) + } +} + +public extension View { + func testyScreen() -> some View { + modifier(TestyScreenModifier()) + } + + func testyGlassCard() -> some View { + modifier(TestyGlassCardModifier()) + } +} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f8baa2..245a4b8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,50 +1,117 @@ -name: Swift Package Cross-Platform CI (iOS-GUI & Linux-CUI) +name: Testy CI on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] -# ワークフロー全体で Node 24 への移行を先取りして警告を消す -env: - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" +permissions: + contents: read jobs: - test: - name: Test on ${{ matrix.platform }} - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - include: - # 1. iOS (GUI環境・UIKit依存) - - platform: iOS - os: macos-15 - run_cmd: "xcodebuild test -scheme \"${{ github.event.repository.name }}\" -destination 'platform=iOS Simulator,name=iPhone 16,OS=latest' -quiet" - - # 2. Linux (CUI環境・デーモン) - - platform: Linux - os: ubuntu-latest - run_cmd: "swift test -v" + ios-build: + name: Build iOS app + runs-on: macos-15 + steps: + - name: Checkout Testy + uses: actions/checkout@v5 + with: + path: Testy + + - name: Checkout blocks dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/blocks + ref: feature-new-work + path: blocks + + - name: Checkout overlayNetwork dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/overlayNetwork + ref: feature-new-work + path: overlayNetwork + + - name: Prepare SharedDesignSystem dependency + run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem + + - name: Show Xcode and Swift versions + working-directory: Testy + run: | + xcodebuild -version + swift --version + - name: Build Testy for iOS + working-directory: Testy + run: xcodebuild -project Testy.xcodeproj -scheme Testy -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build + + linux-cross-build: + name: Cross-build Linux static SDK + runs-on: macos-15 steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 + - name: Checkout Testy + uses: actions/checkout@v5 + with: + path: Testy - # 【iOSのみ】Xcode(Swift 6.0を含む環境)を選択 - - name: Select Xcode Version (macOS) - if: matrix.platform == 'iOS' - run: sudo xcode-select -s /Applications/Xcode_16.0.app + - name: Checkout blocks dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/blocks + ref: feature-new-work + path: blocks + + - name: Checkout overlayNetwork dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/overlayNetwork + ref: feature-new-work + path: overlayNetwork + + - name: Prepare SharedDesignSystem dependency + run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem + + - name: Restore Swiftly cache + id: swiftly-cache + uses: actions/cache@v5 + with: + path: | + ~/.swiftly + ~/Library/Developer/Toolchains + key: ${{ runner.os }}-swiftly-6.1.2-v1 + + - name: Install Swift 6.1.2 toolchain + if: steps.swiftly-cache.outputs.cache-hit != 'true' + run: | + curl -O https://download.swift.org/swiftly/darwin/swiftly.pkg + installer -pkg swiftly.pkg -target CurrentUserHomeDirectory + ~/.swiftly/bin/swiftly init --quiet-shell-followup + . "${SWIFTLY_HOME_DIR:-$HOME/.swiftly}/env.sh" + hash -r + swiftly install 6.1.2 + + - name: Show Swift 6.1.2 toolchain + run: "$HOME/Library/Developer/Toolchains/swift-6.1.2-RELEASE.xctoolchain/usr/bin/swift --version" - # 【Linuxのみ】Swift 6.0 ツールチェーンをセットアップ - - name: Setup Swift (Linux) - if: matrix.platform == 'Linux' - uses: swift-actions/setup-swift@v3 + - name: Restore Static Linux SDK cache + id: static-linux-sdk-cache + uses: actions/cache@v5 with: - swift-version: '6.0' + path: ~/Library/org.swift.swiftpm/swift-sdks + key: ${{ runner.os }}-swift-6.1.2-static-linux-sdk-0.0.1-v1 + + - name: Install Static Linux SDK + if: steps.static-linux-sdk-cache.outputs.cache-hit != 'true' + run: | + "$HOME/Library/Developer/Toolchains/swift-6.1.2-RELEASE.xctoolchain/usr/bin/swift" sdk install \ + https://download.swift.org/swift-6.1.2-release/static-sdk/swift-6.1.2-RELEASE/swift-6.1.2-RELEASE_static-linux-0.0.1.artifactbundle.tar.gz \ + --checksum df0b40b9b582598e7e3d70c82ab503fd6fbfdff71fd17e7f1ab37115a0665b3b + + - name: Show installed Swift SDKs + run: "$HOME/Library/Developer/Toolchains/swift-6.1.2-RELEASE.xctoolchain/usr/bin/swift sdk list" - # マトリックスで定義したそれぞれのテストコマンドを実行 - - name: Run Tests - run: ${{ matrix.run_cmd }} + - name: Cross-build Testy for Linux + working-directory: Testy + run: | + "$HOME/Library/Developer/Toolchains/swift-6.1.2-RELEASE.xctoolchain/usr/bin/swift" build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..6ef19a6 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,118 @@ +# AGENTS.md + +このリポジトリは iOS App `Testy` と Linux CUI target `TestyOnLinux` の開発・レビュー用です。 +Codex または自動レビュー agent は、以下の方針に従って作業してください。 + +## 基本方針 + +- レビューでは、iOS App のビルド、Linux Static SDK クロスビルド、`blocks` 連携、`overlayNetwork` 経由の通信、UI 変更、CI 失敗、テスト不足を優先して確認する。 +- 変更を求められていないレビューでは、ファイル編集、コミット、push、merge、tag 作成、release 作成をしない。 +- 指摘は、対象ファイル、行番号、重要度、理由、可能なら修正案を含める。 +- 推測だけで断定しない。ローカル確認または GitHub Actions のログに基づいて説明する。 +- iOS は `Testy.xcodeproj`、Linux は `Package.swift` を入口として扱う。 + +## 実行してよい主な確認コマンド + +読み取り系: + +```sh +git status --short --branch +git diff +git diff --stat +git log --oneline --decorate -n 20 +git show --stat +rg +rg --files +sed -n '1,220p' +``` + +iOS build: + +```sh +xcodebuild -project Testy.xcodeproj -scheme Testy -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build +``` + +Swift Package / Linux: + +```sh +swift --version +swift package resolve +swift build -v +swift test -v +swift sdk list +swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl +``` + +macOS 上で Swift 6.1.2 toolchain を明示して使う必要がある場合: + +```sh +TOOLCHAINS=org.swift.612202505261a swift build -v --swift-sdk x86_64-swift-linux-musl --build-path .build/linux-musl +``` + +GitHub / pull request 確認: + +```sh +gh pr view +gh pr diff +gh pr checks +gh run list --branch --limit 5 +gh run view +gh run view --log +``` + +CI 設定の構文確認: + +```sh +ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "YAML OK"' +``` + +## 条件付きで実行してよい操作 + +- ユーザーが明示的に依頼した場合のみ、ファイル編集、コミット、push、PR 作成を行う。 +- `gh pr create`、`gh pr comment`、`gh pr review` は、ユーザーの依頼または自動レビューの目的に必要な場合のみ使う。 +- 依存関係や toolchain のインストールは、CI の再現やユーザーの依頼に必要な場合に限る。 +- CI では `Testy`、`blocks`、`overlayNetwork` を兄弟ディレクトリに checkout する。 +- `SharedDesignSystem` は現時点で GitHub remote がないローカル兄弟 package なので、CI では `.github/ci/SharedDesignSystem` を `../SharedDesignSystem` として配置する。 + +## してはならない操作 + +- ユーザーの明示的な許可なしに、以下を実行しない。 + +```sh +git reset --hard +git clean -fdx +git checkout -- +git push --force +git push --force-with-lease +gh pr merge +gh release create +gh auth login +gh auth token +rm -rf +``` + +- secret、token、署名鍵、認証情報を表示、保存、ログ出力しない。 +- `.git` の履歴を書き換える操作を、レビュー目的だけで行わない。 +- CI で `/Users/yoichi/appOutput/Testy` のような個人環境の絶対パスを使わない。CI では `.build/linux-musl` を使う。 +- Linux 検証を `swift:5.8` などの Linux container native build で代替しない。Static Linux SDK クロスビルドを優先する。 +- 失敗した CI を `continue-on-error` で隠して成功扱いにしない。 + +## レビュー時の重点 + +- iOS UI 変更では SwiftUI view、navigation、権限、通知、入力検証を確認する。 +- Linux target では `Sources/Testy/iOS` が除外され、CUI/domain 側だけでビルドできることを確認する。 +- `blocks` と `overlayNetwork` の API 変更が `Testy` 側に波及していないか確認する。 +- `#if os(...)`、Darwin、Glibc、Musl、POSIX API の型差分を確認する。 +- public API 変更がある場合は、README、tests、CI の更新漏れを確認する。 + +## 推奨する報告形式 + +レビュー結果は次の順で報告する。 + +1. 重要な問題点 +2. 根拠となるファイル・行・ログ +3. 修正案 +4. 実行した確認コマンド +5. 残っているリスク + +問題が見つからない場合も、その旨と確認した範囲を明記する。 From 5577eb4d4863e19474ae27739305ba4bae546425 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Wed, 20 May 2026 16:50:16 +0900 Subject: [PATCH 2/6] Make CI SharedDesignSystem fallback compatible with Xcode 16 --- .../SharedDesignSystem.swift | 38 ++++--------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift b/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift index 654cce0..4be372e 100644 --- a/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift +++ b/.github/ci/SharedDesignSystem/Sources/SharedDesignSystem/SharedDesignSystem.swift @@ -68,16 +68,8 @@ public struct TestyGlassButtonStyle: ButtonStyle { .frame(minHeight: 54) .padding(.horizontal, 18) .background { - Group { - if #available(iOS 26.0, macOS 26.0, *) { - RoundedRectangle(cornerRadius: 20, style: .continuous) - .fill(.clear) - .glassEffect(.regular.tint(.white.opacity(0.18)).interactive(), in: .rect(cornerRadius: 20)) - } else { - RoundedRectangle(cornerRadius: 20, style: .continuous) - .fill(.ultraThinMaterial) - } - } + RoundedRectangle(cornerRadius: 20, style: .continuous) + .fill(.ultraThinMaterial) } .overlay { RoundedRectangle(cornerRadius: 20, style: .continuous) @@ -97,16 +89,8 @@ public struct TestyGlassTextFieldStyle: TextFieldStyle { .padding(.horizontal, 14) .padding(.vertical, 14) .background { - Group { - if #available(iOS 26.0, macOS 26.0, *) { - RoundedRectangle(cornerRadius: 18, style: .continuous) - .fill(.clear) - .glassEffect(.regular.tint(.white.opacity(0.08)), in: .rect(cornerRadius: 18)) - } else { - RoundedRectangle(cornerRadius: 18, style: .continuous) - .fill(.ultraThinMaterial) - } - } + RoundedRectangle(cornerRadius: 18, style: .continuous) + .fill(.ultraThinMaterial) } .overlay { RoundedRectangle(cornerRadius: 18, style: .continuous) @@ -123,7 +107,9 @@ public struct TestyScreenModifier: ViewModifier { TestySceneBackground() content } + #if os(iOS) .toolbarBackground(.hidden, for: .navigationBar) + #endif } } @@ -134,16 +120,8 @@ public struct TestyGlassCardModifier: ViewModifier { content .padding(18) .background { - Group { - if #available(iOS 26.0, macOS 26.0, *) { - RoundedRectangle(cornerRadius: 28, style: .continuous) - .fill(.clear) - .glassEffect(.regular.tint(.white.opacity(0.10)), in: .rect(cornerRadius: 28)) - } else { - RoundedRectangle(cornerRadius: 28, style: .continuous) - .fill(.ultraThinMaterial) - } - } + RoundedRectangle(cornerRadius: 28, style: .continuous) + .fill(.ultraThinMaterial) } .overlay { RoundedRectangle(cornerRadius: 28, style: .continuous) From d932ae3aa01936dea3d6167e6f1ba5bdb2b145f0 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Wed, 20 May 2026 18:32:51 +0900 Subject: [PATCH 3/6] Add unit test job to CI --- .github/workflows/ci.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 245a4b8..14c32eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,6 +46,44 @@ jobs: working-directory: Testy run: xcodebuild -project Testy.xcodeproj -scheme Testy -destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO build + unit-test: + name: Run Swift package tests + runs-on: macos-15 + steps: + - name: Checkout Testy + uses: actions/checkout@v5 + with: + path: Testy + + - name: Checkout blocks dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/blocks + ref: feature-new-work + path: blocks + + - name: Checkout overlayNetwork dependency + uses: actions/checkout@v5 + with: + repository: webbananaunite/overlayNetwork + ref: feature-new-work + path: overlayNetwork + + - name: Prepare SharedDesignSystem dependency + run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem + + - name: Show Swift version + working-directory: Testy + run: swift --version + + - name: Resolve dependencies + working-directory: Testy + run: swift package resolve + + - name: Run tests + working-directory: Testy + run: swift test -v + linux-cross-build: name: Cross-build Linux static SDK runs-on: macos-15 From 6969e8dc91b07784c841c0c8cc30e4a64c56e154 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Thu, 21 May 2026 11:50:28 +0900 Subject: [PATCH 4/6] Document dependency tag workflow --- AGENTS.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 6ef19a6..0c8c6b0 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -72,7 +72,28 @@ ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); puts "YAML - `gh pr create`、`gh pr comment`、`gh pr review` は、ユーザーの依頼または自動レビューの目的に必要な場合のみ使う。 - 依存関係や toolchain のインストールは、CI の再現やユーザーの依頼に必要な場合に限る。 - CI では `Testy`、`blocks`、`overlayNetwork` を兄弟ディレクトリに checkout する。 -- `SharedDesignSystem` は現時点で GitHub remote がないローカル兄弟 package なので、CI では `.github/ci/SharedDesignSystem` を `../SharedDesignSystem` として配置する。 +- ローカル path 依存で検証する場合、CI では必要な兄弟 package を checkout または配置する。GitHub tag 依存へ切り替えた PR では、該当 dependency の追加 checkout は原則不要。 + +## Package.swift の依存関係ルール + +- 開発中は、隣接ディレクトリのソースを直接確認できるように `Package.swift` の `dependencies` ではローカル path 依存を使う。 + +```swift +.package(name: "blocks", path: "../blocks"), //using source code in same device. +.package(name: "SharedDesignSystem", path: "../SharedDesignSystem"), //using source code in same device. +``` + +- pull request を作成または更新する前に、`blocks` と `SharedDesignSystem` のどの GitHub tag を使うかを必ずユーザーに確認する。 +- pull request 用の状態では、ユーザーが指定した tag を使って GitHub tag 依存へ切り替える。 + +```swift +.package(url: "https://github.com/webbananaunite/blocks", .upToNextMajor(from: "")), //using source code in github tag +.package(url: "https://github.com/webbananaunite/SharedDesignSystem", .upToNextMajor(from: "")), //using source code in github tag +``` + +- 例として現在想定されている tag は `blocks` が `0.5.3`、`SharedDesignSystem` が `0.1.0` だが、PR ごとに最新の意図をユーザーへ確認する。 +- GitHub tag 依存へ切り替える場合、その tag が GitHub に push 済みであり、PR で検証したい変更を含んでいることを確認する。tag に含まれないローカル変更は CI では検証されない。 +- SwiftPM の version requirement には SemVer として解釈できる tag を使う。`0.1` のような短い tag を使う必要がある場合は、SwiftPM が受け付けるか確認し、問題があれば `0.1.0` のような 3 要素の tag をユーザーに提案する。 ## してはならない操作 From 218ed16ae83e351e7385ef34a191b7fff39b19c6 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Thu, 21 May 2026 11:57:17 +0900 Subject: [PATCH 5/6] Use overlayNetwork main in CI --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 14c32eb..1a06a78 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -30,7 +30,7 @@ jobs: uses: actions/checkout@v5 with: repository: webbananaunite/overlayNetwork - ref: feature-new-work + ref: main path: overlayNetwork - name: Prepare SharedDesignSystem dependency @@ -66,7 +66,7 @@ jobs: uses: actions/checkout@v5 with: repository: webbananaunite/overlayNetwork - ref: feature-new-work + ref: main path: overlayNetwork - name: Prepare SharedDesignSystem dependency @@ -104,7 +104,7 @@ jobs: uses: actions/checkout@v5 with: repository: webbananaunite/overlayNetwork - ref: feature-new-work + ref: main path: overlayNetwork - name: Prepare SharedDesignSystem dependency From 966cbd05051f53460125943fa498e4c79ce72f48 Mon Sep 17 00:00:00 2001 From: webbananaunite Date: Thu, 21 May 2026 12:41:52 +0900 Subject: [PATCH 6/6] Use tagged package dependencies in CI --- .github/workflows/ci.yml | 51 ------------------- Package.resolved | 37 ++++++++++++-- Package.swift | 7 +-- Testy.xcodeproj/project.pbxproj | 20 ++++---- .../xcshareddata/swiftpm/Package.resolved | 38 ++++++++++++-- 5 files changed, 80 insertions(+), 73 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a06a78..e2e07ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,23 +19,6 @@ jobs: with: path: Testy - - name: Checkout blocks dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/blocks - ref: feature-new-work - path: blocks - - - name: Checkout overlayNetwork dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/overlayNetwork - ref: main - path: overlayNetwork - - - name: Prepare SharedDesignSystem dependency - run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem - - name: Show Xcode and Swift versions working-directory: Testy run: | @@ -55,23 +38,6 @@ jobs: with: path: Testy - - name: Checkout blocks dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/blocks - ref: feature-new-work - path: blocks - - - name: Checkout overlayNetwork dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/overlayNetwork - ref: main - path: overlayNetwork - - - name: Prepare SharedDesignSystem dependency - run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem - - name: Show Swift version working-directory: Testy run: swift --version @@ -93,23 +59,6 @@ jobs: with: path: Testy - - name: Checkout blocks dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/blocks - ref: feature-new-work - path: blocks - - - name: Checkout overlayNetwork dependency - uses: actions/checkout@v5 - with: - repository: webbananaunite/overlayNetwork - ref: main - path: overlayNetwork - - - name: Prepare SharedDesignSystem dependency - run: cp -R Testy/.github/ci/SharedDesignSystem SharedDesignSystem - - name: Restore Swiftly cache id: swiftly-cache uses: actions/cache@v5 diff --git a/Package.resolved b/Package.resolved index 3a42b45..852c006 100755 --- a/Package.resolved +++ b/Package.resolved @@ -1,13 +1,40 @@ { - "originHash" : "bb82be2a944ceefc086e3810039a585b7739985ad65d4f6080187d8dbf726372", + "originHash" : "89e5e3d884e722e89e899c76ba050ecd97266a02c41ba441f8eceb00cd7cf0c7", "pins" : [ + { + "identity" : "blocks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/blocks", + "state" : { + "revision" : "17cb11ab4bd70c58e7f5d28e46fa7b9bd5a7d477", + "version" : "0.5.4" + } + }, + { + "identity" : "overlaynetwork", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/overlayNetwork", + "state" : { + "revision" : "95f03332470ee9908394ea8d06655a200d406be0", + "version" : "0.5.4" + } + }, + { + "identity" : "shareddesignsystem", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/SharedDesignSystem", + "state" : { + "revision" : "e4c0879dbb3c4674ff1dbaeb3d03ddb420c7a962", + "version" : "0.1.0" + } + }, { "identity" : "swift-asn1", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-asn1.git", "state" : { - "revision" : "f70225981241859eb4aa1a18a75531d26637c8cc", - "version" : "1.4.0" + "revision" : "eb50cbd14606a9161cbc5d452f18797c90ef0bab", + "version" : "1.7.0" } }, { @@ -15,8 +42,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-crypto.git", "state" : { - "revision" : "334e682869394ee239a57dbe9262bff3cd9495bd", - "version" : "3.14.0" + "revision" : "95ba0316a9b733e92bb6b071255ff46263bbe7dc", + "version" : "3.15.1" } } ], diff --git a/Package.swift b/Package.swift index 3b58c5f..b1fdb60 100755 --- a/Package.swift +++ b/Package.swift @@ -41,10 +41,11 @@ productsSettings = [ .executable(name: "TestyOnLinux", targets: ["TestyOnLinux"]) ] dependenciesSettings = [ -// .package(url: "https://github.com/webbananaunite/blocks", .upToNextMajor(from: "0.5.3")), //using source code in github - .package(name: "blocks", path: "../blocks"), //using source code in same device. + .package(url: "https://github.com/webbananaunite/blocks", .upToNextMajor(from: "0.5.4")), //using source code in github tag +// .package(name: "blocks", path: "../blocks"), //using source code in same device. // .package(url: "https://github.com/apple/swift-crypto.git", .upToNextMajor(from: "3.4.0")) //using as import Crypto - .package(name: "SharedDesignSystem", path: "../SharedDesignSystem"), //using source code in same device. + .package(url: "https://github.com/webbananaunite/SharedDesignSystem", .upToNextMajor(from: "0.1.0")), //using source code in github tag +// .package(name: "SharedDesignSystem", path: "../SharedDesignSystem"), //using source code in same device. ] /* diff --git a/Testy.xcodeproj/project.pbxproj b/Testy.xcodeproj/project.pbxproj index b961584..36e8ff4 100755 --- a/Testy.xcodeproj/project.pbxproj +++ b/Testy.xcodeproj/project.pbxproj @@ -75,9 +75,6 @@ 98815257247DE78600C4C791 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 9881525A247DE78600C4C791 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 9887EBF329776149006E08D2 /* DataArithmetic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataArithmetic.swift; sourceTree = ""; }; - 9896DA5C2F91D9B800AA8F5E /* SharedDesignSystem */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = SharedDesignSystem; path = ../SharedDesignSystem; sourceTree = SOURCE_ROOT; }; - 98CC20562B43D8B30014B5C0 /* overlayNetwork */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = overlayNetwork; path = ../overlayNetwork; sourceTree = ""; }; - 98CC20572B43D9A80014B5C0 /* blocks */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = blocks; path = ../blocks; sourceTree = ""; }; 98E711522D768FCA003DC112 /* TestPlan.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = TestPlan.xctestplan; sourceTree = ""; }; /* End PBXFileReference section */ @@ -104,9 +101,6 @@ 98501C692A8EF7B800B5064B /* Frameworks */ = { isa = PBXGroup; children = ( - 98CC20572B43D9A80014B5C0 /* blocks */, - 98CC20562B43D8B30014B5C0 /* overlayNetwork */, - 9896DA5C2F91D9B800AA8F5E /* SharedDesignSystem */, ); name = Frameworks; sourceTree = ""; @@ -270,6 +264,7 @@ mainGroup = 98815242247DE78400C4C791; packageReferences = ( 988CB9DD2B43FB83005420E6 /* XCRemoteSwiftPackageReference "blocks" */, + 9896DA5F2F91EFB000AA8F5E /* XCRemoteSwiftPackageReference "SharedDesignSystem" */, ); productRefGroup = 9881524C247DE78400C4C791 /* Products */; projectDirPath = ""; @@ -528,7 +523,6 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 0.5.3; DEVELOPMENT_TEAM = 8GS35C2LU7; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../blocks"; INFOPLIST_FILE = Testy/XcodeInfo.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -558,7 +552,6 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 0.5.3; DEVELOPMENT_TEAM = 8GS35C2LU7; - FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../blocks"; INFOPLIST_FILE = Testy/XcodeInfo.plist; IPHONEOS_DEPLOYMENT_TARGET = 16.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -617,7 +610,15 @@ repositoryURL = "https://github.com/webbananaunite/blocks"; requirement = { kind = upToNextMajorVersion; - minimumVersion = 0.3.0; + minimumVersion = 0.5.4; + }; + }; + 9896DA5F2F91EFB000AA8F5E /* XCRemoteSwiftPackageReference "SharedDesignSystem" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/webbananaunite/SharedDesignSystem"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.1.0; }; }; /* End XCRemoteSwiftPackageReference section */ @@ -630,6 +631,7 @@ }; 9896DA5D2F91D9E200AA8F5E /* SharedDesignSystem */ = { isa = XCSwiftPackageProductDependency; + package = 9896DA5F2F91EFB000AA8F5E /* XCRemoteSwiftPackageReference "SharedDesignSystem" */; productName = SharedDesignSystem; }; /* End XCSwiftPackageProductDependency section */ diff --git a/Testy.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Testy.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 2313bc6..2ac927d 100755 --- a/Testy.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Testy.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,12 +1,40 @@ { + "originHash" : "fe0f75e32e3242e83b1fe49877b5cdf6dc670af3807fd80db28b6abc3a7637be", "pins" : [ + { + "identity" : "blocks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/blocks", + "state" : { + "revision" : "17cb11ab4bd70c58e7f5d28e46fa7b9bd5a7d477", + "version" : "0.5.4" + } + }, + { + "identity" : "overlaynetwork", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/overlayNetwork", + "state" : { + "revision" : "95f03332470ee9908394ea8d06655a200d406be0", + "version" : "0.5.4" + } + }, + { + "identity" : "shareddesignsystem", + "kind" : "remoteSourceControl", + "location" : "https://github.com/webbananaunite/SharedDesignSystem", + "state" : { + "revision" : "e4c0879dbb3c4674ff1dbaeb3d03ddb420c7a962", + "version" : "0.1.0" + } + }, { "identity" : "swift-asn1", "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-asn1.git", "state" : { - "revision" : "7faebca1ea4f9aaf0cda1cef7c43aecd2311ddf6", - "version" : "1.3.0" + "revision" : "eb50cbd14606a9161cbc5d452f18797c90ef0bab", + "version" : "1.7.0" } }, { @@ -14,10 +42,10 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/apple/swift-crypto.git", "state" : { - "revision" : "ff0f781cf7c6a22d52957e50b104f5768b50c779", - "version" : "3.10.0" + "revision" : "95ba0316a9b733e92bb6b071255ff46263bbe7dc", + "version" : "3.15.1" } } ], - "version" : 2 + "version" : 3 }