diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..151f6ec --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,54 @@ +name: ci + +on: + push: + branches: + - main + pull_request: + branches: + - '*' + workflow_dispatch: + +jobs: + lint: + runs-on: macos-14 + environment: default + steps: + - uses: actions/checkout@v3 + - name: SwiftFormat version + run: swiftformat --version + - name: Format lint + run: swiftformat --lint . + - name: Install SwiftLint + run: brew install swiftlint + - name: SwiftLint version + run: swiftlint --version + - name: Lint + run: swiftlint lint --quiet + macos-test: + runs-on: macos-14 + environment: default + strategy: + matrix: + xcode: ['14.3.1', '15.2'] + # Swift: 5.8.1 , 5.9.2 + steps: + - uses: actions/checkout@v3 + - name: Select Xcode ${{ matrix.xcode }} + run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app + - name: Run Tests + run: swift test --enable-code-coverage --parallel + - name: Swift Coverage Report + run: xcrun llvm-cov export -format="lcov" .build/debug/secret-swiftPackageTests.xctest/Contents/MacOS/secret-swiftPackageTests -instr-profile .build/debug/codecov/default.profdata > coverage_report.lcov + - uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + fail_ci_if_error: true # optional (default = false) + linux-test: + runs-on: ubuntu-latest + environment: default + + steps: + - uses: actions/checkout@v3 + - name: Run Tests + run: swift test --parallel diff --git a/Sources/Secret/Hashed.swift b/Sources/Secret/Hashed.swift index bf7dd40..8721999 100644 --- a/Sources/Secret/Hashed.swift +++ b/Sources/Secret/Hashed.swift @@ -18,6 +18,11 @@ public struct Hashed: Hashable where T: Hashable { /// Enabled by default, when encoding, replace the ``wrappedValue`` with its hash. public let obscureEncoding: Bool + public init(wrappedValue: T, obscureEncoding: Bool = true) { + self.wrappedValue = wrappedValue + self.obscureEncoding = obscureEncoding + } + public init(_ wrappedValue: T, obscureEncoding: Bool = true) { self.wrappedValue = wrappedValue self.obscureEncoding = obscureEncoding diff --git a/Sources/Secret/Redacted.swift b/Sources/Secret/Redacted.swift index a752582..368e2dc 100644 --- a/Sources/Secret/Redacted.swift +++ b/Sources/Secret/Redacted.swift @@ -18,6 +18,11 @@ public struct Redacted { /// Enabled by default, when encoding, replace the ``wrappedValue`` with "REDACTED". public let obscureEncoding: Bool + public init(wrappedValue: T, obscureEncoding: Bool = true) { + self.wrappedValue = wrappedValue + self.obscureEncoding = obscureEncoding + } + public init(_ wrappedValue: T, obscureEncoding: Bool = true) { self.wrappedValue = wrappedValue self.obscureEncoding = obscureEncoding