Skip to content

Commit 861a4d6

Browse files
author
github actions
committed
Merge release/2026.01.13T03.33.40 into master
2 parents f32b544 + d9103d0 commit 861a4d6

File tree

112 files changed

+1240
-555
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+1240
-555
lines changed

.circleci/config.yml

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ parameters:
1212
type: string
1313
default: "iPhone 17"
1414
context:
15-
description: Specify running context. Default is CI but theare are 2 options for manual release.
15+
description: Specify running context. Default is CI but there are options for manual release.
1616
type: enum
17-
enum: [ci, manual, dry_run]
17+
enum: [ci, manual_release, manual_publish_pods, dry_run]
1818
default: ci
1919

2020
orbs:
@@ -150,8 +150,21 @@ jobs:
150150
- setup_gems
151151
- setup_pods
152152
- run:
153-
name: Publish
154-
command: bash ./scripts/publish.sh
153+
name: Detect release type and execute
154+
command: |
155+
# Detect module release by checking podspec changes
156+
PODSPEC_CHANGES=$(git diff HEAD~1..HEAD --name-only | grep '\.podspec$' || true)
157+
if [ -n "$PODSPEC_CHANGES" ]; then
158+
echo "Module release detected"
159+
echo "Changed podspecs:"
160+
echo "$PODSPEC_CHANGES" | sed 's/^/ - /'
161+
echo "Running full publish flow..."
162+
bash ./scripts/publish.sh
163+
else
164+
echo "Non-module release detected"
165+
echo "Running sync only..."
166+
bash ./scripts/sync_repository.sh
167+
fi
155168
- slack/status:
156169
fail_only: true
157170

@@ -191,6 +204,8 @@ jobs:
191204

192205
workflows:
193206
version: 2
207+
# NOTE: This workflow runs in parallel with GitHub Actions for the time being.
208+
# Eventually, this will be fully migrated to GitHub Actions.
194209
build_and_deploy:
195210
when:
196211
equal: [ ci, << pipeline.parameters.context >> ]
@@ -199,15 +214,24 @@ workflows:
199214
- test:
200215
requires:
201216
- build
217+
218+
manual_release:
219+
when:
220+
equal: [ manual_release, << pipeline.parameters.context >> ]
221+
jobs:
222+
- build
223+
- test:
224+
requires:
225+
- build
202226
- publish:
203227
filters:
204228
branches:
205229
only:
206230
- master
207231

208-
manual_deploy:
232+
manual_publish_pods:
209233
when:
210-
equal: [ manual, << pipeline.parameters.context >> ]
234+
equal: [ manual_publish_pods, << pipeline.parameters.context >> ]
211235
jobs:
212236
- echo_context
213237
- build:

.github/workflows/claude-security-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
1414
id: app-token
1515
with:
16-
app-id: 135171
16+
app-id: ${{ secrets.SHARED_GITHUB_ACTION_AGENT_APP_ID }}
1717
private-key: ${{ secrets.SHARED_GITHUB_ACTION_AGENT_APP_PRIVATE_KEY }}
1818
- name: Post Claude comment
1919
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0

.github/workflows/claude-vertex.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
- uses: actions/create-github-app-token@a8d616148505b5069dccd32f177bb87d7f39123b # v2.1.1
4949
id: app-token
5050
with:
51-
app-id: ${{ secrets.CLAUDE_GITHUB_APP_ID }}
51+
app-id: ${{ secrets.SHARED_GITHUB_ACTION_AGENT_APP_ID }}
5252
private-key: ${{ secrets.SHARED_GITHUB_ACTION_AGENT_APP_PRIVATE_KEY }}
5353

5454
# Claude Code Actionの実行

.github/workflows/create-tag.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: "Create Tag"
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
module:
6+
description: 'Module to create tag for'
7+
required: true
8+
type: choice
9+
options:
10+
- KarteUtilities
11+
- KarteCore
12+
- KarteInAppMessaging
13+
- KarteRemoteNotification
14+
- KarteVariables
15+
- KarteVisualTracking
16+
- KarteInbox
17+
- KarteInAppFrame
18+
- KarteCrashReporting
19+
- KarteNotificationServiceExtension
20+
- KarteDebugger
21+
default: 'KarteCore'
22+
dry_run:
23+
description: 'Skip tag push (dry-run mode)'
24+
required: false
25+
type: boolean
26+
default: true
27+
jobs:
28+
create-tag:
29+
# Available only on master branch when `dry-run = false`.
30+
if: github.repository != 'plaidev/karte-ios-sdk' && (github.event.inputs.dry_run == 'true' || github.ref == 'refs/heads/master')
31+
runs-on: ubuntu-latest
32+
timeout-minutes: 30
33+
steps:
34+
- name: Checkout repository
35+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
36+
with:
37+
persist-credentials: false
38+
fetch-depth: 0
39+
- name: Generate GitHub App token
40+
uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1
41+
id: app-token
42+
with:
43+
app-id: ${{ secrets.APP_TEAM_GITHUB_APP_ID }}
44+
private-key: ${{ secrets.APP_TEAM_GITHUB_APP_PRIVATE_KEY }}
45+
owner: plaidev
46+
repositories: |
47+
karte-ios-sdk
48+
karte-ios-dev
49+
- name: Configure Git
50+
env:
51+
GH_TOKEN: ${{ steps.app-token.outputs.token }}
52+
run: |
53+
git config --global url."https://x-access-token:${GH_TOKEN}@github.com/plaidev/karte-ios-sdk".insteadOf "https://github.com/plaidev/karte-ios-sdk"
54+
git config --global url."https://x-access-token:${GH_TOKEN}@github.com/plaidev/karte-ios-dev".insteadOf "https://github.com/plaidev/karte-ios-dev"
55+
git config --global user.name "github actions"
56+
git config --global user.email "[email protected]"
57+
- name: Setup remote repository
58+
run: git remote add sync_repo https://github.com/plaidev/karte-ios-sdk.git
59+
- name: Generate tag name
60+
id: tag
61+
env:
62+
MODULE: ${{ github.event.inputs.module }}
63+
run: |
64+
PODSPEC="${MODULE}.podspec"
65+
VERSION=$(grep -E "s\.version\s*=" "$PODSPEC" | sed -E "s/.*'([^']+)'.*/\1/")
66+
PREFIX=$(echo "$MODULE" | sed 's/Karte//')
67+
TAG_NAME="${PREFIX}-${VERSION}"
68+
echo "name=${TAG_NAME}" >> $GITHUB_OUTPUT
69+
echo "Generated tag: ${TAG_NAME} (from ${PODSPEC} version ${VERSION})"
70+
- name: Check if tag exists
71+
env:
72+
TAG: ${{ steps.tag.outputs.name }}
73+
run: |
74+
if git ls-remote --tags origin | grep -q "refs/tags/${TAG}$"; then
75+
echo "Error: Tag ${TAG} already exists on origin"
76+
exit 1
77+
fi
78+
if git ls-remote --tags sync_repo | grep -q "refs/tags/${TAG}$"; then
79+
echo "Error: Tag ${TAG} already exists on sync_repo"
80+
exit 1
81+
fi
82+
- name: Create and push tag
83+
if: github.event.inputs.dry_run != 'true'
84+
env:
85+
TAG: ${{ steps.tag.outputs.name }}
86+
run: |
87+
git tag "${TAG}"
88+
git push origin "${TAG}"
89+
git push sync_repo "${TAG}"
90+
- name: Create and push tag (dry-run)
91+
if: github.event.inputs.dry_run == 'true'
92+
env:
93+
TAG: ${{ steps.tag.outputs.name }}
94+
run: |
95+
git tag "${TAG}"
96+
git push --dry-run origin "${TAG}"
97+
git push --dry-run sync_repo "${TAG}"
98+
git tag -d "${TAG}"

.github/workflows/deploy-release-feed.yml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,15 @@ jobs:
3535
id: check_message
3636
run: |
3737
MESSAGE=$(git log -1 --pretty=%B)
38-
if echo "$MESSAGE" | grep -q "Merge release"; then
38+
if echo "$MESSAGE" | grep -q "Non-module release"; then
39+
echo "should_deploy=false" >> $GITHUB_OUTPUT
40+
echo "⏭️ Non-module release detected - skipping RSS feed generation"
41+
elif echo "$MESSAGE" | grep -q "Merge release"; then
3942
echo "should_deploy=true" >> $GITHUB_OUTPUT
40-
echo "✅ Commit message contains 'Merge release' - proceeding with deployment"
43+
echo "✅ Module release detected - proceeding with RSS feed generation"
4144
else
4245
echo "should_deploy=false" >> $GITHUB_OUTPUT
43-
echo "⏭️ Commit message does not contain 'Merge release' - skipping deployment"
46+
echo "⏭️ Not a release commit - skipping deployment"
4447
fi
4548
4649
- name: Generate Atom Feed
@@ -77,3 +80,19 @@ jobs:
7780
if: steps.check_message.outputs.should_deploy == 'true'
7881
id: deployment
7982
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4.0.5
83+
84+
- name: Notify Slack on success
85+
if: steps.check_message.outputs.should_deploy == 'true' && success()
86+
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
87+
env:
88+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
89+
SLACK_MESSAGE: 'Release feed deployment completed successfully'
90+
SLACK_COLOR: success
91+
92+
- name: Notify Slack on failure
93+
if: failure()
94+
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
95+
env:
96+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
97+
SLACK_MESSAGE: 'Release feed deployment failed'
98+
SLACK_COLOR: failure

.github/workflows/publish-docs.yml

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
name: "Publish Documentation"
22
on:
3-
push:
4-
branches:
5-
- master
63
workflow_dispatch:
74
inputs:
85
# Allows manual recovery when the runner's Xcode version path changes.
@@ -23,15 +20,6 @@ jobs:
2320
permissions:
2421
contents: read
2522
steps:
26-
- name: Checkout repository
27-
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
28-
with:
29-
submodules: true
30-
- name: Setup Ruby
31-
uses: ruby/setup-ruby@8aeb6ff8030dd539317f8e1769a044873b56ea71 # v1.268.0
32-
with:
33-
ruby-version: '3.4'
34-
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
3523
- name: Generate GitHub App token
3624
uses: actions/create-github-app-token@7e473efe3cb98aa54f8d4bac15400b15fad77d94 # v2.2.0
3725
id: app-token
@@ -41,6 +29,16 @@ jobs:
4129
owner: plaidev
4230
repositories: |
4331
karte-sdk-docs
32+
- name: Checkout repository
33+
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
34+
with:
35+
persist-credentials: false
36+
submodules: true
37+
- name: Setup Ruby
38+
uses: ruby/setup-ruby@8aeb6ff8030dd539317f8e1769a044873b56ea71 # v1.268.0
39+
with:
40+
ruby-version: '3.4'
41+
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
4442
- name: Configure Git
4543
env:
4644
GH_TOKEN: ${{ steps.app-token.outputs.token }}
@@ -71,16 +69,21 @@ jobs:
7169
bundle exec ruby ./generate_docs.rb --branch "$BRANCH_NAME"
7270
fi
7371
working-directory: scripts
72+
notify-slack:
73+
runs-on: ubuntu-latest
74+
needs: [publish-docs]
75+
if: always() && github.repository != 'plaidev/karte-ios-sdk'
76+
steps:
7477
- name: Notify Slack on success
75-
if: success()
78+
if: needs.publish-docs.result == 'success'
7679
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
7780
env:
7881
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
7982
SLACK_MESSAGE: 'Documentation for KARTE iOS SDK was published successfully!'
8083
SLACK_COLOR: success
8184
SLACK_ICON_EMOJI: ':apple:'
8285
- name: Notify Slack on failure
83-
if: failure()
86+
if: needs.publish-docs.result == 'failure'
8487
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
8588
env:
8689
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}

.github/workflows/publish-pod.yml

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
name: "Publish Pod"
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
module:
6+
description: 'Module to publish'
7+
required: true
8+
type: choice
9+
options:
10+
- KarteUtilities
11+
- KarteCore
12+
- KarteInAppMessaging
13+
- KarteRemoteNotification
14+
- KarteVariables
15+
- KarteVisualTracking
16+
- KarteInbox
17+
- KarteInAppFrame
18+
- KarteCrashReporting
19+
- KarteNotificationServiceExtension
20+
- KarteDebugger
21+
default: 'KarteCore'
22+
mode:
23+
description: 'Execution mode'
24+
required: true
25+
type: choice
26+
options:
27+
- publish
28+
- dry_run
29+
default: 'dry_run'
30+
permissions:
31+
contents: write
32+
jobs:
33+
publish-pod:
34+
runs-on: macos-26-xlarge
35+
timeout-minutes: 30
36+
if: ${{ github.repository != 'plaidev/karte-ios-sdk' && (github.ref == 'refs/heads/master' || inputs.mode == 'dry_run') }}
37+
steps:
38+
- name: Checkout repository
39+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
40+
- name: Set up Ruby
41+
uses: ruby/setup-ruby@d5f787ce339eb0767271bc01d922e85644c2c8ab # v1.280.0
42+
with:
43+
ruby-version: '3.4'
44+
- name: Install gems
45+
run: bundle install
46+
- name: Dry run
47+
if: inputs.mode == 'dry_run'
48+
env:
49+
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
50+
PODSPEC: ${{ inputs.module }}.podspec
51+
run: |
52+
bundle exec pod trunk me
53+
bundle exec pod lib lint $PODSPEC --allow-warnings --verbose
54+
- name: Publish to CocoaPods
55+
if: inputs.mode == 'publish'
56+
id: publish
57+
env:
58+
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
59+
PODSPEC: ${{ inputs.module }}.podspec
60+
run: |
61+
bundle exec pod trunk push $PODSPEC --allow-warnings --synchronous
62+
notify-slack:
63+
runs-on: ubuntu-latest
64+
needs: [publish-pod]
65+
if: always() && github.repository != 'plaidev/karte-ios-sdk' && inputs.mode == 'publish'
66+
steps:
67+
- name: Notify Slack on success
68+
if: needs.publish-pod.result == 'success'
69+
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
70+
env:
71+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
72+
SLACK_TITLE: 'Publish Pod Success'
73+
SLACK_MESSAGE: 'Successfully published ${{ inputs.module }} to CocoaPods\nhttps://cocoapods.org/pods/${{ inputs.module }}'
74+
SLACK_COLOR: success
75+
- name: Notify Slack on failure
76+
if: needs.publish-pod.result == 'failure'
77+
uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
78+
env:
79+
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
80+
SLACK_TITLE: 'Publish Pod Failure'
81+
SLACK_MESSAGE: 'Failed to publish ${{ inputs.module }} to CocoaPods\nhttps://cocoapods.org/pods/${{ inputs.module }}'
82+
SLACK_COLOR: failure

0 commit comments

Comments
 (0)