A fast, safe, and efficient CBOR serialization library for Swift on any platform. swiftpackageindex.com/thecoolwinter/CBOR/1.1.1/documentation/cbor
atproto swift cbor

Lets try caching build things

+34 -6
+34 -6
.github/workflows/ci.yml
··· 29 29 - uses: swift-actions/setup-swift@v2 30 30 with: 31 31 swift-version: "6.1" 32 + - name: Restore .build 33 + id: "restore-build" 34 + uses: actions/cache/restore@v4 35 + with: 36 + path: .build 37 + key: "swiftpm-tests-build-${{ runner.os }}-${{ github.event.pull_request.base.sha || github.event.after }}" 38 + restore-keys: "swiftpm-tests-build-${{ runner.os }}-" 32 39 - name: Testing Package 33 - run: swift test 40 + run: swift build --build-tests 41 + - name: Cache .build 42 + if: steps.restore-build.outputs.cache-hit != 'true' 43 + uses: actions/cache/save@v4 44 + with: 45 + path: .build 46 + key: "swiftpm-tests-build-${{ runner.os }}-${{ github.event.pull_request.base.sha || github.event.after }}" 47 + - name: Testing Package 48 + run: swift test --skip-build 34 49 35 50 test-macos: 36 51 name: Testing and Fuzzing CBOR (macOS) ··· 42 57 - uses: swift-actions/setup-swift@next 43 58 with: 44 59 swift-version: "6.1" 60 + - name: Restore .build 61 + id: "restore-build" 62 + uses: actions/cache/restore@v4 63 + with: 64 + path: .build 65 + key: "swiftpm-tests-build-${{ runner.os }}-${{ github.event.pull_request.base.sha || github.event.after }}" 66 + restore-keys: "swiftpm-tests-build-${{ runner.os }}-" 67 + - name: Building Package 68 + run: set -o pipefail && xcrun --toolchain swift 6.1 --run swift build --build-tests --sanitize fuzzer | xcbeautify 69 + - name: Cache .build 70 + if: steps.restore-build.outputs.cache-hit != 'true' 71 + uses: actions/cache/save@v4 72 + with: 73 + path: .build 74 + key: "swiftpm-tests-build-${{ runner.os }}-${{ github.event.pull_request.base.sha || github.event.after }}" 45 75 - name: Testing Package 46 - run: set -o pipefail && swift test | xcbeautify 47 - - name: Building Fuzzing Target 48 - run: set -o pipefail && swift build -c release --sanitize fuzzer,address | xcbeautify 49 - - name: Fuzzing For 30 Seconds 76 + run: set -o pipefail && xcrun --toolchain swift 6.1 --run swift test --skip-build | xcbeautify 77 + - name: Fuzzing For 15 Seconds 50 78 run: | 51 79 mkdir -p .fuzz 52 80 mkdir -p .fuzz/new-corpus 53 81 mkdir -p .fuzz/corpus 54 82 mkdir -p .fuzz/artifacts 55 - ./.build/release/Fuzzing .fuzz/new-corpus .fuzz/corpus -max_total_time=10 -artifact_prefix=.fuzz/artifacts -max_len=1000000 83 + ./.build/debug/Fuzzing .fuzz/new-corpus .fuzz/corpus -max_total_time=15 -artifact_prefix=.fuzz/artifacts -max_len=1000000 56 84 - name: "Upload Fuzzing Artifacts (if available)" 57 85 uses: actions/upload-artifact@v4 58 86 with: