name: build on: push: branches: [ master ] pull_request: branches: [ master ] jobs: macos: runs-on: macos-14 name: macOS strategy: matrix: swift: - toolchain: 5.10-RELEASE branch: swift-5.10-release env: SWIFT_TOOLCHAIN_DIRECTORY: >- /Library/Developer/Toolchains/swift-${{ matrix.swift.toolchain }}.xctoolchain steps: - name: Cache swift toolchains uses: actions/cache@v2 with: path: swift-${{ matrix.swift.toolchain }}.pkg key: macos:swift:${{ matrix.swift.toolchain }} - name: Cache status id: cache_status uses: andstor/file-existence-action@v1 with: files: swift-${{ matrix.swift.toolchain }}.pkg - name: Download toolchain if: steps.cache_status.outputs.files_exists == 'false' run: "curl https://download.swift.org/\ ${{ matrix.swift.branch }}/xcode/\ swift-${{ matrix.swift.toolchain }}/\ swift-${{ matrix.swift.toolchain }}-osx.pkg \ --output swift-${{ matrix.swift.toolchain }}.pkg" - name: Install toolchain run: | sudo installer -pkg swift-${{ matrix.swift.toolchain }}.pkg -target / - name: Select toolchain run: | echo "TOOLCHAINS=$(plutil -extract CFBundleIdentifier raw \ $SWIFT_TOOLCHAIN_DIRECTORY/Info.plist)" >> $GITHUB_ENV - name: Checkout repository uses: actions/checkout@v3 - name: Run pipeline run: .github/pipeline linux: runs-on: ${{ matrix.os.runner }} name: ${{ matrix.os.runner }} (${{ matrix.swift.toolchain }}) strategy: matrix: os: - runner: ubuntu-22.04 prefix: ubuntu2204 suffix: ubuntu22.04 swift: - toolchain: 5.10-RELEASE branch: swift-5.10-release steps: - uses: actions/checkout@v3 - name: cache swift toolchains uses: actions/cache@v2 with: path: swift-${{ matrix.swift.toolchain }}.tar.gz key: ${{ matrix.os.runner }}:swift:${{ matrix.swift.toolchain }} - name: cache status id: cache_status uses: andstor/file-existence-action@v1 with: files: swift-${{ matrix.swift.toolchain }}.tar.gz - name: download swift toolchain if: steps.cache_status.outputs.files_exists == 'false' run: "curl https://download.swift.org/\ ${{ matrix.swift.branch }}/\ ${{ matrix.os.prefix }}/\ swift-${{ matrix.swift.toolchain }}/\ swift-${{ matrix.swift.toolchain }}-${{ matrix.os.suffix }}.tar.gz \ --output swift-${{ matrix.swift.toolchain }}.tar.gz" - name: set up swift run: | mkdir -p $GITHUB_WORKSPACE/swift-${{ matrix.swift.toolchain }} tar -xzf swift-${{ matrix.swift.toolchain }}.tar.gz -C $GITHUB_WORKSPACE/swift-${{ matrix.swift.toolchain }} --strip 1 echo "$GITHUB_WORKSPACE/swift-${{ matrix.swift.toolchain }}/usr/bin" >> $GITHUB_PATH - run: .github/pipeline