Add a JavaKit sample that produces a Swift command-line app using Java APIs #122
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: pull_request | |
| on: | |
| pull_request: | |
| types: [ opened, reopened, synchronize ] | |
| jobs: | |
| soundness: | |
| uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main | |
| with: | |
| api_breakage_check_enabled: false | |
| # FIXME: Something is off with the format task and it gets "stuck", need to investigate | |
| format_check_enabled: false | |
| license_header_check_project_name: Swift.org | |
| # FIXME: we're about to remove _Subprocess immediately anyway, so rather than fixing it one by one remove this adjusted list and use the default again ASAP | |
| # swift-subprocess includes the word "kill" because SIGKILL signal handling so we allow it | |
| unacceptable_language_check_word_list: "blacklist whitelist slave master sane sanity insane insanity killed killing hang hung hanged hanging" #ignore-unacceptable-language | |
| test-java: | |
| name: Java tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: true | |
| 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: Install System Dependencies | |
| 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'" | |
| # 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'" | |
| # 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: Gradle build | |
| 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 | |
| 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: Install System Dependencies | |
| 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 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-generate" | |
| - name: Test Swift | |
| run: "swift test" |