Compare commits
1 Commits
main
...
ci/release
Author | SHA1 | Date |
---|---|---|
![]() |
6127e6d650 |
|
@ -8,15 +8,34 @@ jobs:
|
|||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
images:
|
||||
- swift:5.7
|
||||
- swift:5.8
|
||||
- swiftlang/swift:nightly-main-focal
|
||||
container: ${{ matrix.images }}
|
||||
image:
|
||||
- swift:5.3
|
||||
- swift:5.4
|
||||
- swiftlang/swift:nightly-main
|
||||
container: ${{ matrix.image }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Resolve Swift dependencies
|
||||
run: swift package resolve
|
||||
- name: Build & Test
|
||||
run: swift test --parallel
|
||||
run: swift test --enable-test-discovery --parallel
|
||||
|
||||
release-build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
image:
|
||||
- swift:5.3
|
||||
- swift:5.4
|
||||
- swift:5.5
|
||||
- swiftlang/swift:nightly-main
|
||||
container: ${{ matrix.image }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Resolve Swift dependencies
|
||||
run: swift package resolve
|
||||
- name: Build in release mode
|
||||
run: swift build --enable-test-discovery -c release
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
name: Documentation
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Generate Documentation
|
||||
uses: SwiftDocOrg/swift-doc@master
|
||||
with:
|
||||
format: html
|
||||
base-url: /opentelemetry-swift-xray/
|
||||
module-name: "OpenTelemetry Swift X-Ray"
|
||||
output: Documentation
|
||||
|
||||
- name: Update Permissions
|
||||
run: 'sudo chown -R $USER Documentation'
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
uses: JamesIves/github-pages-deploy-action@4.1.0
|
||||
with:
|
||||
branch: gh-pages
|
||||
folder: Documentation
|
4
.spi.yml
4
.spi.yml
|
@ -1,4 +0,0 @@
|
|||
version: 1
|
||||
builder:
|
||||
configs:
|
||||
- documentation_targets: [OpenTelemetryXRay]
|
|
@ -1,18 +1,17 @@
|
|||
// swift-tools-version:5.7
|
||||
// swift-tools-version:5.3
|
||||
import PackageDescription
|
||||
|
||||
let package = Package(
|
||||
name: "swift-otel-xray",
|
||||
platforms: [.macOS(.v13)],
|
||||
name: "opentelemetry-swift-xray",
|
||||
products: [
|
||||
.library(name: "OpenTelemetryXRay", targets: ["OpenTelemetryXRay"]),
|
||||
],
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/slashmo/swift-otel.git", .upToNextMinor(from: "0.8.0")),
|
||||
.package(url: "https://github.com/slashmo/opentelemetry-swift.git", .branch("automatic-context-propagation")),
|
||||
],
|
||||
targets: [
|
||||
.target(name: "OpenTelemetryXRay", dependencies: [
|
||||
.product(name: "OpenTelemetry", package: "swift-otel"),
|
||||
.product(name: "OpenTelemetry", package: "opentelemetry-swift"),
|
||||
]),
|
||||
.testTarget(name: "OpenTelemetryXRayTests", dependencies: [
|
||||
.target(name: "OpenTelemetryXRay"),
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# X-Ray Support for OpenTelemetry Swift
|
||||
|
||||
[](https://github.com/slashmo/opentelemetry-swift-xray/actions/workflows/ci.yaml)
|
||||
[](https://swiftpackageindex.com/slashmo/swift-otel)
|
||||
[](https://swift.org)
|
||||
[](https://github.com/apple/swift-distributed-tracing)
|
||||
[](https://github.com/slashmo/opentelemetry-swift-xray/actions/workflows/ci.yaml)
|
||||
|
||||
This library adds support for [AWS X-Ray](https://aws.amazon.com/xray/) to [OpenTelemetry Swift](https://github.com/slashmo/opentelemetry-swift).
|
||||
|
||||
|
|
|
@ -73,11 +73,14 @@ public struct XRayPropagator: OTelPropagator {
|
|||
guard let traceID = extractedTraceID else {
|
||||
throw TraceHeaderParsingError(value: tracingHeader, reason: .missingTraceID)
|
||||
}
|
||||
guard let traceFlags = extractedTraceFlags else {
|
||||
throw TraceHeaderParsingError(value: tracingHeader, reason: .missingSampleDecision)
|
||||
}
|
||||
|
||||
return OTel.SpanContext(
|
||||
traceID: traceID,
|
||||
spanID: spanID ?? OTel.SpanID(bytes: (0, 0, 0, 0, 0, 0, 0, 0)),
|
||||
traceFlags: extractedTraceFlags ?? [],
|
||||
traceFlags: traceFlags,
|
||||
isRemote: true
|
||||
)
|
||||
}
|
||||
|
@ -145,5 +148,7 @@ extension XRayPropagator.TraceHeaderParsingError {
|
|||
case invalidTraceIDDelimiters
|
||||
|
||||
case invalidSpanIDLength(Int)
|
||||
|
||||
case missingSampleDecision
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,16 +125,14 @@ final class XRayPropagatorTests: XCTestCase {
|
|||
)
|
||||
}
|
||||
|
||||
func test_extractsTracingHeader_missingSampleDecision() throws {
|
||||
func test_extractFails_missingSampleDecision() throws {
|
||||
let tracingHeader = "Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8"
|
||||
let headers = ["X-Amzn-Trace-Id": tracingHeader]
|
||||
|
||||
let spanContext = try XCTUnwrap(propagator.extractSpanContext(from: headers, using: extractor))
|
||||
|
||||
XCTAssertEqual(spanContext.traceID.description, "5759e988bd862e3fe1be46a994272793")
|
||||
XCTAssertEqual(spanContext.spanID.description, "53995c3f42cd8ad8")
|
||||
XCTAssertTrue(spanContext.traceFlags.isEmpty)
|
||||
XCTAssertNil(spanContext.traceState)
|
||||
XCTAssertThrowsError(
|
||||
try propagator.extractSpanContext(from: headers, using: extractor),
|
||||
XRayPropagator.TraceHeaderParsingError(value: tracingHeader, reason: .missingSampleDecision)
|
||||
)
|
||||
}
|
||||
|
||||
func test_extractFails_invalidTraceIDLength() throws {
|
||||
|
|
Loading…
Reference in New Issue