diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 1b8013f1..f27d5276 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -36,25 +36,31 @@ jobs: - name: Install JDK 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 - # - uses: actions/setup-java@v4 - # with: - # distribution: 'zulu' - # java-version: '22' - # cache: 'gradle' - - name: Install Nightly Swift + - name: Install Untested Nightly Swift run: "bash -xc './docker/install_untested_nightly_swift.sh'" - # Cache .m2/repository + # setup caches - name: Cache local Gradle repository uses: actions/cache@v4 continue-on-error: true with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-cache-${{ hashFiles('**/build.gradle') }}-${{ hashFiles('**/build.gradle.kts') }} + path: | + /root/.gradle/caches + /root/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('*/*.gradle*', 'settings.gradle') }} restore-keys: | - ${{ runner.os }}-gradle-cache ${{ runner.os }}-gradle- + - 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: Gradle build - run: ./gradlew build --info --no-daemon + run: ./gradlew update --info --no-daemon test-swift: name: Swift tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) @@ -75,8 +81,29 @@ jobs: run: apt-get -qq update && apt-get -qq install -y make curl wget - name: Install JDK run: "bash -xc 'JDK_VENDOR=${{ matrix.jdk_vendor }} ./docker/install_jdk.sh'" - - name: Install Nightly Swift + - name: Install Untested Nightly Swift run: "bash -xc './docker/install_untested_nightly_swift.sh'" + # setup caches + - name: Cache local Gradle repository + uses: actions/cache@v4 + continue-on-error: true + with: + path: | + /root/.gradle/caches + /root/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('*/*.gradle*', 'settings.gradle') }} + restore-keys: | + ${{ runner.os }}-gradle- + - 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: Generate sources (make) (Temporary) # TODO: this should be triggered by the respective builds run: "make jextract-run" diff --git a/docker/install_untested_nightly_swift.sh b/docker/install_untested_nightly_swift.sh index 76d01895..369a15cb 100755 --- a/docker/install_untested_nightly_swift.sh +++ b/docker/install_untested_nightly_swift.sh @@ -24,15 +24,15 @@ if [[ "$(grep "22.04" /etc/lsb-release)" = "" ]]; then fi UNTESTED_TOOLCHAIN_URL=$(curl -s $SWIFT_UNTESTED_TOOLCHAIN_JOB_URL | grep 'Toolchain: ' | sed 's/Toolchain: //g') -UNTESTED_TOOLCHAIN_FILENAME=$(echo "$UNTESTED_TOOLCHAIN_URL" | awk ' - function basename(file) { - sub(".*/", "", file) - return file - } - {print FILENAME, basename(FILENAME)}') +UNTESTED_TOOLCHAIN_FILENAME=$"toolchain.tar.gz" + +echo "Download toolchain: $UNTESTED_TOOLCHAIN_URL" cd / -curl "$UNTESTED_TOOLCHAIN_URL" > "$UNTESTED_TOOLCHAIN_FILENAME" +curl -s "$UNTESTED_TOOLCHAIN_URL" > "$UNTESTED_TOOLCHAIN_FILENAME" + +swift -version +echo "Extract toolchain: $UNTESTED_TOOLCHAIN_FILENAME" tar xzf "$UNTESTED_TOOLCHAIN_FILENAME" -swift -version \ No newline at end of file +swift -version