From f31b5d706d3f4ae4b5db50309815db8112125a82 Mon Sep 17 00:00:00 2001 From: patrick-zippenfenig Date: Sat, 6 Aug 2022 21:57:11 +0200 Subject: [PATCH] ci integration --- .github/workflows/test.yml | 91 ++++++++++++++++++++++++++++++++++++++ Package.swift | 2 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..147399f --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,91 @@ +# https://github.com/peripheryapp/periphery/blob/master/.github/workflows/test.yml + +name: Test +on: + push: + branches: + - master + pull_request: {} +env: + swift_package_resolve: swift package resolve + swift_build: swift build --build-tests + swift_test: swift test + cache_version: 1 +jobs: + macOS: + strategy: + fail-fast: false + matrix: + xcode: ["13.4.1", "13.3.1"] + include: + - xcode: "13.4.1" + macos: macOS-12 + - xcode: "13.3.1" + macos: macOS-12 + runs-on: ${{ matrix.macos }} + name: macOS + steps: + - uses: actions/checkout@master + - name: Select Xcode version + run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app; swift -version + - name: Get Swift Version + id: get-swift-version + run: | + echo "::set-output name=version::$(swift -version | head -n 1 | sed s/,// )" + shell: bash + - name: Cache resolved dependencies + id: cache-resolved-dependencies + uses: actions/cache@v2 + with: + path: | + .build + Package.resolved + key: ${{ runner.os }}-${{ matrix.xcode }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-${{ hashFiles('Package.swift', 'Package.resolved') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.xcode }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps- + - name: Resolve dependencies + if: steps.cache-resolved-dependencies.outputs.cache-hit != 'true' + run: ${{ env.swift_package_resolve }} + - name: Build + run: ${{ env.swift_build }} + - name: Test + run: ${{ env.swift_test }} + linux: + strategy: + fail-fast: false + matrix: + swift: ["5.6", "5.5"] + include: + - swift: "5.6" + container: "swift:5.6" + cache-version: 2 + - swift: "5.5" + container: "swift:5.5" + cache-version: 2 + runs-on: ubuntu-20.04 + container: ${{ matrix.container }} + name: Linux + steps: + - name: Get Swift Version + id: get-swift-version + run: | + echo "::set-output name=version::$(swift -version | head -n 1 | sed s/,// )" + shell: bash + - uses: actions/checkout@master + - name: Cache resolved dependencies + id: cache-resolved-dependencies + uses: actions/cache@v2 + with: + path: | + .build + Package.resolved + key: ${{ matrix.cache-version }}-${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps-${{ hashFiles('Package.swift', 'Package.resolved') }} + restore-keys: | + ${{ matrix.cache-version }}-${{ runner.os }}-${{ steps.get-swift-version.outputs.version }}-${{ env.cache_version }}-spm-deps- + - name: Resolve dependencies + if: steps.cache-resolved-dependencies.outputs.cache-hit != 'true' + run: ${{ env.swift_package_resolve }} + - name: Build + run: ${{ env.swift_build }} --enable-test-discovery + - name: Test + run: ${{ env.swift_test }} --enable-test-discovery \ No newline at end of file diff --git a/Package.swift b/Package.swift index 9e870b9..6de738c 100644 --- a/Package.swift +++ b/Package.swift @@ -1,4 +1,4 @@ -// swift-tools-version: 5.6 +// swift-tools-version: 5.5 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription