diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6590c553..a09638d7 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -13,8 +13,8 @@ jobs: format_check_enabled: false license_header_check_project_name: Swift.org - test-java: - name: Java tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) + build: + name: Build (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) runs-on: ubuntu-latest strategy: fail-fast: true @@ -64,18 +64,16 @@ jobs: restore-keys: | ${{ runner.os }}-swiftpm-cache ${{ runner.os }}-swiftpm- - # run the actual build - name: Gradle build run: | ./gradlew build -x test --no-daemon # skip tests - find . - ./gradlew build --info --no-daemon - test-swift: - name: Swift tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) + test-java: + name: Java tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) runs-on: ubuntu-latest + needs: build strategy: - fail-fast: false + fail-fast: true matrix: swift_version: ['nightly-main'] os_version: ['jammy'] @@ -86,23 +84,6 @@ jobs: JAVA_HOME: "/usr/lib/jvm/default-jdk" steps: - uses: actions/checkout@v4 - - name: Install System Dependencies - run: apt-get -qq update && apt-get -qq install -y make curl wget - - name: Cache JDK - id: cache-jdk - uses: actions/cache@v4 - continue-on-error: true - with: - path: /usr/lib/jvm/default-jdk/ - key: ${{ runner.os }}-jdk-${{ matrix.jdk_vendor }}-${{ hashFiles('/usr/lib/jvm/default-jdk/*') }} - restore-keys: | - ${{ runner.os }}-jdk- - - name: Install JDK - if: steps.cache-jdk.outputs.cache-hit != 'true' - run: "bash -xc 'JDK_VENDOR=${{ matrix.jdk_vendor }} ./docker/install_jdk.sh'" - # TODO: not using setup-java since incompatible with the swiftlang/swift base image - - name: Install Untested Nightly Swift - run: "bash -xc './docker/install_untested_nightly_swift.sh'" - name: Cache local Gradle repository uses: actions/cache@v4 continue-on-error: true @@ -123,9 +104,36 @@ jobs: ${{ runner.os }}-swiftpm-cache ${{ runner.os }}-swiftpm- # run the actual build - - name: Generate sources (make) (Temporary) - # TODO: this should be triggered by the respective builds - run: "make jextract-generate" + - name: Gradle test + run: | + ./gradlew build --info --no-daemon + + test-swift: + name: Swift tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) + runs-on: ubuntu-latest + needs: build + strategy: + fail-fast: false + matrix: + swift_version: ['nightly-main'] + os_version: ['jammy'] + jdk_vendor: ['Corretto'] + container: + image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }} + env: + JAVA_HOME: "/usr/lib/jvm/default-jdk" + steps: + - uses: actions/checkout@v4 + - name: Cache local SwiftPM repository + uses: actions/cache@v4 + continue-on-error: true + with: + path: /__w/swift-java/swift-java/.build/checkouts + key: ${{ runner.os }}-swiftpm-cache-${{ hashFiles('Package.swift') }} + restore-keys: | + ${{ runner.os }}-swiftpm-cache + ${{ runner.os }}-swiftpm- + # run the actual build - name: Test Swift run: "swift test" - name: Build (Swift) Sample Apps