Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,24 @@ jobs:
e2e-tests:
# Skip on fork PRs where repo secrets aren't available
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
runs-on: macos-latest
runs-on: macos-arm

steps:
- name: Checkout SDK
uses: actions/checkout@v4
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
path: sdk

- name: Checkout sdk-e2e-tests
uses: actions/checkout@v4
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
with:
repository: segmentio/sdk-e2e-tests
ref: ${{ inputs.e2e_tests_ref || 'main' }}
token: ${{ secrets.E2E_TESTS_TOKEN }}
path: sdk-e2e-tests

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '20'

Expand All @@ -66,7 +66,7 @@ jobs:

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: e2e-test-results
path: sdk-e2e-tests/test-results/
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-e2e-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,17 @@ on:

jobs:
publish:
runs-on: macos-latest
runs-on: macos-arm
steps:
- name: Checkout SDK
uses: actions/checkout@v4
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4

- name: Build e2e-cli (release)
working-directory: e2e-cli
run: swift build -c release

- name: Upload artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: e2e-cli
path: e2e-cli/.build/release/E2ECLI
Expand Down
111 changes: 22 additions & 89 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,133 +2,66 @@ name: Swift

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
cancel_previous:
runs-on: ubuntu-latest
steps:
- uses: styfle/cancel-workflow-action@0.12.0
with:
workflow_id: ${{ github.event.workflow.id }}

generate_code_coverage:
needs: cancel_previous
runs-on: macos-26
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- name: Build & Run tests
run: swift test --enable-code-coverage
- name: Convert coverage report
run: xcrun llvm-cov export -format="lcov" .build/debug/SegmentPackageTests.xctest/Contents/MacOS/SegmentPackageTests -instr-profile .build/debug/codecov/default.profdata > coverage.lcov
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4.0.1
with:
token: ${{ secrets.CODECOV_TOKEN }}
slug: segmentio/analytics-swift
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build_and_test_spm_mac:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- name: Build & Run tests
run: swift test

build_and_test_ios:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- run: xcodebuild -scheme Segment test -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 17'

build_and_test_tvos:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- run: xcodebuild -scheme Segment test -sdk appletvsimulator -destination 'platform=tvOS Simulator,name=Apple TV'

build_and_test_watchos:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- run: xcodebuild -scheme Segment test -sdk watchsimulator -destination 'platform=watchOS Simulator,name=Apple Watch Ultra 3 (49mm)'

build_and_test_visionos:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- run: xcodebuild -scheme Segment test -destination 'platform=visionOS Simulator,OS=latest,name=Apple Vision Pro'
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- run: xcodebuild -scheme Segment test -destination 'platform=visionOS Simulator,name=Apple Vision Pro'

build_and_test_examples:
needs: cancel_previous
runs-on: macos-26
runs-on: macos-arm
steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26"
- uses: actions/checkout@v2
- uses: webfactory/ssh-agent@v0.8.0
with:
ssh-private-key: ${{ secrets.SOVRAN_SSH_KEY }}
- name: build for ios simulator
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
- name: BasicExample
run: |
cd Examples/apps/BasicExample
xcodebuild -workspace "BasicExample.xcworkspace" -scheme "BasicExample" -sdk iphonesimulator
- name: build for ios simulator
- name: ObjCExample
run: |
cd Examples/apps/ObjCExample
xcodebuild -workspace "ObjCExample.xcworkspace" -scheme "ObjCExample" -sdk iphonesimulator
- name: build for ios simulator
- name: SegmentUIKitExample
run: |
cd Examples/apps/SegmentUIKitExample
xcodebuild -workspace "SegmentUIKitExample.xcworkspace" -scheme "SegmentUIKitExample" -sdk iphonesimulator
- name: build for ios simulator
- name: SegmentWeatherWidget
run: |
cd Examples/apps/SegmentWeatherWidget
xcodebuild -workspace "SegmentWeatherWidget.xcworkspace" -scheme "SegmentWeatherWidget" -sdk iphonesimulator
- name: build for mac catalyst
- name: Mac Catalyst
run: |
cd Examples/apps/SegmentUIKitExample
xcodebuild -workspace "SegmentUIKitExample.xcworkspace" -scheme "SegmentUIKitExample" -destination 'platform=macOS,variant=Mac Catalyst'
Loading