cache downloaded swiftpm artifacts #76
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 Nightly Swift | |
run: "bash -xc './docker/install_untested_nightly_swift.sh'" | |
- name: Cache local Gradle repository | |
uses: actions/cache@v4 | |
continue-on-error: true | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle- | |
- name: Cache local SwiftPM repository | |
uses: actions/cache@v4 | |
continue-on-error: true | |
with: | |
path: ~/.build/checkouts | |
key: ${{ runner.os }}-swiftpm-cache-${{ hashFiles('Package.swift') }} | |
restore-keys: | | |
${{ runner.os }}-swiftpm-cache | |
${{ runner.os }}-swiftpm- | |
- name: Gradle build | |
run: ./gradlew update --info --no-daemon | |
- name: List files for debugging | |
run: pwd && find $(pwd) | |
- name: List home files for debugging | |
run: find ~/ | |
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 Nightly Swift | |
run: "bash -xc './docker/install_untested_nightly_swift.sh'" | |
- name: Cache local SwiftPM repository | |
uses: actions/cache@v4 | |
continue-on-error: true | |
with: | |
path: ~/.build/checkouts | |
key: ${{ runner.os }}-swiftpm-cache-${{ hashFiles('Package.swift') }} | |
restore-keys: | | |
${{ runner.os }}-swiftpm-cache | |
${{ runner.os }}-swiftpm- | |
- name: Generate sources (make) (Temporary) | |
# TODO: this should be triggered by the respective builds | |
run: "make jextract-run" | |
- name: Test Swift | |
run: "swift test" |