Skip to content

Commit c095f59

Browse files
committed
allow customizing jdk we use from the workflow
1 parent 2ac5e47 commit c095f59

File tree

3 files changed

+25
-14
lines changed

3 files changed

+25
-14
lines changed

.github/workflows/pull_request.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,18 @@ jobs:
1010
with:
1111
api_breakage_check_enabled: false
1212
license_header_check_project_name: Swift.org
13-
# swift-subprocess includes the word "kill" because SIGKILL signalhandling so we allow it
13+
# swift-subprocess includes the word "kill" because SIGKILL signal handling so we allow it
1414
unacceptable_language_check_word_list: "blacklist whitelist slave master sane sanity insane insanity killed killing hang hung hanged hanging" #ignore-unacceptable-language
1515

1616
test-java:
17-
name: Java tests (${{ matrix.swift_version }} - ${{ matrix.os_version }})
17+
name: Java tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }})
1818
runs-on: ubuntu-latest
1919
strategy:
2020
fail-fast: true
2121
matrix:
2222
swift_version: [ 'nightly-main' ]
2323
os_version: [ 'jammy' ]
24+
jdk_vendor: [ 'Corretto' ]
2425
container:
2526
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
2627
env:
@@ -30,7 +31,7 @@ jobs:
3031
- name: Install Make
3132
run: apt update && apt install -y make
3233
- name: Install JDK
33-
run: "bash -x ./docker/install_jdk.sh"
34+
run: "bash -xc 'JDK_VENDOR=${{ matrix.jdk_vendor }} ./docker/install_jdk.sh'"
3435
# TODO: not using setup-java since incompatible with the swiftlang/swift base image
3536
# - uses: actions/setup-java@v4
3637
# with:
@@ -44,13 +45,14 @@ jobs:
4445
run: ./gradlew build --no-daemon
4546

4647
test-swift:
47-
name: Swift tests (${{ matrix.swift_version }} - ${{ matrix.os_version }})
48+
name: Swift tests (swift:${{ matrix.swift_version }} jdk:${{matrix.jdk_vendor}} os:${{ matrix.os_version }})
4849
runs-on: ubuntu-latest
4950
strategy:
5051
fail-fast: false
5152
matrix:
5253
swift_version: [ 'nightly-main' ]
5354
os_version: [ 'jammy' ]
55+
jdk_vendor: [ 'Corretto' ]
5456
container:
5557
image: ${{ (contains(matrix.swift_version, 'nightly') && 'swiftlang/swift') || 'swift' }}:${{ matrix.swift_version }}-${{ matrix.os_version }}
5658
env:
@@ -60,7 +62,7 @@ jobs:
6062
- name: Install Make
6163
run: apt update && apt install -y make
6264
- name: Install JDK
63-
run: "bash -x ./docker/install_jdk.sh"
65+
run: "bash -xc 'JDK_VENDOR=${{ matrix.jdk_vendor }} ./docker/install_jdk.sh'"
6466
- name: Generate sources (make) (Temporary)
6567
# TODO: this should be triggered by the respective builds
6668
run: "make jextract-run"

Sources/JExtractSwift/Swift2JavaTranslator+Printing.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ extension Swift2JavaTranslator {
117117
printer.print(
118118
"""
119119
// FIXME: this detecting is somewhat off
120-
public static final String TYPE_METADATA_NAME = "\(decl.swiftMangledName!)";
120+
public static final String TYPE_METADATA_NAME = "\(decl.swiftMangledName ?? "")";
121121
static final MemorySegment TYPE_METADATA = SwiftKit.getTypeByMangledNameInEnvironment(TYPE_METADATA_NAME);
122122
"""
123123
)

docker/install_jdk.sh

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
set -euo pipefail
1616

1717
# Supported JDKs: Corretto or OpenJDK
18-
declare -r JDK_VENDOR=Corretto
18+
if [ "$JDK_VENDOR" = "" ]; then
19+
declare -r JDK_VENDOR="Corretto"
20+
fi
1921
echo "Installing $JDK_VENDOR JDK..."
2022

2123
apt-get update && apt-get install -y wget
@@ -32,7 +34,9 @@ if [ "$JDK_VENDOR" = 'OpenJDK' ]; then
3234
fi
3335

3436
wget -q -O jdk.tar.gz "$JDK_URL"
35-
declare -r JDK_SHA="$(sha256sum jdk.tar.gz | cut -d ' ' -f 1)"
37+
38+
declare JDK_SHA # on separate lines due to: SC2155 (warning): Declare and assign separately to avoid masking return values.
39+
JDK_SHA="$(sha256sum jdk.tar.gz | cut -d ' ' -f 1)"
3640
if [ "$JDK_SHA" != "$EXPECT_JDK_SHA" ]; then
3741
echo "Downloaded JDK SHA does not match expected!"
3842
echo "Expected: $EXPECT_JDK_SHA"
@@ -51,7 +55,9 @@ elif [ "$JDK_VENDOR" = 'Corretto' ]; then
5155
fi
5256

5357
wget -q -O jdk.tar.gz "$JDK_URL"
54-
declare -r JDK_MD5="$(md5sum jdk.tar.gz | cut -d ' ' -f 1)"
58+
59+
declare JDK_MD5 # on separate lines due to: SC2155 (warning): Declare and assign separately to avoid masking return values.
60+
JDK_MD5="$(md5sum jdk.tar.gz | cut -d ' ' -f 1)"
5561
if [ "$JDK_MD5" != "$EXPECT_JDK_MD5" ]; then
5662
echo "Downloaded JDK MD5 does not match expected!"
5763
echo "Expected: $EXPECT_JDK_MD5"
@@ -60,15 +66,18 @@ elif [ "$JDK_VENDOR" = 'Corretto' ]; then
6066
else
6167
echo "JDK MD5 is correct.";
6268
fi
69+
else
70+
echo "Unsupported JDK vendor: '$JDK_VENDOR'"
71+
exit 1
6372
fi
6473

6574
# Extract and verify the JDK installation
6675

67-
mkdir -p /usr/lib/jvm/ && cd /usr/lib/jvm/
68-
tar xzvf /jdk.tar.gz
69-
ls -lah
70-
mv "$(ls | head -n1)" default-jdk
71-
rm /jdk.tar.gz
76+
mkdir -p /usr/lib/jvm/
77+
mv jdk.tar.gz /usr/lib/jvm/
78+
cd /usr/lib/jvm/
79+
tar xzvf jdk.tar.gz && rm jdk.tar.gz
80+
mv "$(find . -depth -maxdepth 1 -type f | head -n1)" default-jdk
7281

7382
echo "JAVA_HOME = /usr/lib/jvm/default-jdk"
7483
/usr/lib/jvm/default-jdk/bin/java -version

0 commit comments

Comments
 (0)