Skip to content

fix: Build for Swift 6.0.1 on Linux #711

fix: Build for Swift 6.0.1 on Linux

fix: Build for Swift 6.0.1 on Linux #711

Workflow file for this run

name: ci
on:
push:
branches: [ main ]
pull_request:
branches: '*'
merge_group:
branches: [ main ]
env:
CI_XCODE_OLDEST: '/Applications/Xcode_14.2.app/Contents/Developer'
CI_XCODE_14: '/Applications/Xcode_14.3.1.app/Contents/Developer'
CI_XCODE_LATEST: '/Applications/Xcode_16.1.app/Contents/Developer'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
timeout-minutes: 25
runs-on: macos-15
strategy:
matrix:
destination: ['platform=iOS\ Simulator,OS=18.1,name=iPhone\ 15\ Pro\ Max', 'platform\=tvOS\ Simulator,OS=18.1,name\=Apple\ TV', 'platform=watchOS\ Simulator,name=Apple\ Watch\ Series\ 10\ \(41mm\)', 'platform=macOS', 'platform=visionOS\ Simulator,OS=2.1,name=Apple\ Vision\ Pro']
action: ['test', 'build']
exclude:
- destination: 'platform=iOS\ Simulator,OS=18.1,name=iPhone\ 15\ Pro\ Max'
action: 'build'
- destination: 'platform\=tvOS\ Simulator,OS=18.1,name\=Apple\ TV'
action: 'build'
- destination: 'platform=macOS'
action: 'build'
- destination: 'platform=visionOS\ Simulator,OS=2.1,name=Apple\ Vision\ Pro'
action: 'test'
- destination: 'platform=watchOS\ Simulator,name=Apple\ Watch\ Series\ 10\ \(41mm\)'
action: 'test'
steps:
- uses: actions/checkout@v4
- name: Install Extra Packages
run: brew install swiftlint
- name: Create and set the default keychain
run: |
security create-keychain -p "" temporary
security default-keychain -s temporary
security unlock-keychain -p "" temporary
security set-keychain-settings -lut 7200 temporary
- name: Build-Test
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -workspace Parse.xcworkspace -scheme ParseSwift -derivedDataPath DerivedData -destination ${{ matrix.destination }} ${{ matrix.action }} 2>&1 | xcbeautify --renderer github-actions
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
- name: Prepare codecov
uses: sersoft-gmbh/swift-coverage-action@v4
id: coverage-files
with:
format: lcov
search-paths: ./DerivedData
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: ${{join(fromJSON(steps.coverage-files.outputs.files), ',')}}
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
spm-test:
timeout-minutes: 25
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Create and set the default keychain
run: |
security create-keychain -p "" temporary
security default-keychain -s temporary
security unlock-keychain -p "" temporary
security set-keychain-settings -lut 7200 temporary
- name: Install SwiftLint
run: brew install swiftlint
- name: Build-Test
run: set -o pipefail && env NSUnbufferedIO=YES swift test --enable-code-coverage 2>&1 | xcbeautify --renderer github-actions
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
- name: Prepare codecov
uses: sersoft-gmbh/swift-coverage-action@v4
id: coverage-files
with:
format: lcov
search-paths: ./.build
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: ${{join(fromJSON(steps.coverage-files.outputs.files), ',')}}
env_vars: SPM
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
xcode-test-5_7:
timeout-minutes: 25
needs: linux
runs-on: macos-12
steps:
- uses: actions/checkout@v4
- name: Build-Test
run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -workspace Parse.xcworkspace -scheme ParseSwift -destination platform\=iOS\ Simulator,name\=iPhone\ 13\ Pro\ Max -derivedDataPath DerivedData build 2>&1 | xcbeautify --renderer github-actions
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_OLDEST }}
linux:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: sersoft-gmbh/swifty-linux-action@v3
with:
release-version: "6"
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Build and Test
run: swift test --enable-test-discovery --enable-code-coverage -v
- name: Prepare codecov
run: |
cat .codecov.yml | curl --data-binary @- https://codecov.io/validate
llvm-cov export -format="lcov" .build/x86_64-unknown-linux-gnu/debug/ParseSwiftPackageTests.xctest -instr-profile .build/x86_64-unknown-linux-gnu/debug/codecov/default.profdata > info_linux.lcov
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
env_vars: LINUX
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
windows:
timeout-minutes: 15
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: compnerd/[email protected]
with:
branch: swift-5.10.1-release
tag: 5.10.1-RELEASE
- name: Build
run: |
swift build --enable-test-discovery -v
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
env_vars: WINDOWSLATEST
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}
docs:
timeout-minutes: 10
needs: linux
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Generate Docs
run: set -o pipefail && env NSUnbufferedIO=YES Scripts/generate-documentation
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}
cocoapods:
needs: linux
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Update Framework Version
run: ./Scripts/update_build
env:
BUILD_VERSION: '4.16.2'
- name: CocoaPods
run: pod lib lint --allow-warnings
env:
DEVELOPER_DIR: ${{ env.CI_XCODE_LATEST }}