Skip to content

Commit 69212ce

Browse files
committed
validate samples with independent runs
1 parent 561efe2 commit 69212ce

File tree

6 files changed

+46
-73
lines changed

6 files changed

+46
-73
lines changed

.github/scripts/validate_sample.sh

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/bin/bash
2+
3+
# shellcheck disable=SC2034
4+
declare -r GREEN='\033[0;32m'
5+
declare -r BOLD='\033[1m'
6+
declare -r RESET='\033[0m'
7+
8+
declare -r sampleDir="$1"
9+
declare -r CI_VALIDATE_SCRIPT='ci-validate.sh'
10+
11+
echo ""
12+
echo ""
13+
echo "========================================================================"
14+
printf "Validate sample '${BOLD}%s${RESET}' using: " "$sampleDir"
15+
cd "$sampleDir" || exit
16+
if [[ $(find . -name ${CI_VALIDATE_SCRIPT} -maxdepth 1) ]]; then
17+
echo -e "Custom ${BOLD}${CI_VALIDATE_SCRIPT}${RESET} script..."
18+
./${CI_VALIDATE_SCRIPT} || exit
19+
elif [[ $(find . -name 'build.gradle*' -maxdepth 1) ]]; then
20+
echo -e "${BOLD}Gradle${RESET} build..."
21+
./gradlew build || ./gradlew build --info # re-run to get better failure output
22+
else
23+
echo -e "${BOLD}SwiftPM${RESET} build..."
24+
swift build || exit
25+
fi
26+
27+
echo -e "Validated sample '${BOLD}${sampleDir}${RESET}': ${BOLD}passed${RESET}."
28+
cd - || exit
29+
30+
echo
31+
printf "Done validating sample: ${sampleDir}"
32+
echo -e "${GREEN}done${RESET}."

.github/scripts/validate_samples.sh

Lines changed: 0 additions & 37 deletions
This file was deleted.

.github/workflows/pull_request.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,18 @@ jobs:
8282
- uses: actions/checkout@v4
8383
- name: Prepare CI Environment
8484
uses: ./.github/actions/prepare_env
85-
- name: Verify Samples (All)
86-
run: .github/scripts/validate_samples.sh
85+
- name: "Verify Sample: JavaDependencySampleApp"
86+
run: .github/scripts/validate_sample.sh Samples/JavaDependencySampleApp
87+
- name: "Verify Sample: JavaKitSampleApp"
88+
run: .github/scripts/validate_sample.sh Samples/JavaKitSampleApp
89+
- name: "Verify Sample: JavaProbablyPrime"
90+
run: .github/scripts/validate_sample.sh Samples/JavaProbablyPrime
91+
- name: "Verify Sample: JavaSieve"
92+
run: .github/scripts/validate_sample.sh Samples/JavaSieve
93+
- name: "Verify Sample: SwiftAndJavaJarSampleLib"
94+
run: .github/scripts/validate_sample.sh Samples/SwiftAndJavaJarSampleLib
95+
- name: "Verify Sample: SwiftKitSampleApp"
96+
run: .github/scripts/validate_sample.sh Samples/SwiftKitSampleApp
8797
# TODO: Benchmark compile crashes in CI, enable when nightly toolchains in better shape.
8898
# - name: Build (Swift) Benchmarks
8999
# run: "swift package --package-path Benchmarks/ benchmark list"

Samples/JavaDependencySampleApp/Sources/JavaDependencySample/main.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ let path = "/example/path/executable.exe"
3636
print("Path = \(path)")
3737

3838
let ext = try! FilenameUtilsClass.getExtension(path)
39-
print("Java FilenameUtils found extension = \(ext)")
39+
print("org.apache.commons.io.FilenameUtils.getExtension = \(ext)")
4040
precondition(ext == "exe")
4141

4242
print("Done.")

Samples/JavaDependencySampleApp/ci-validate.sh

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,4 @@
33
set -e
44
set -x
55

6-
JAVASWIFT="../../.build/debug/Java2Swift"
7-
cd ../../
8-
echo "Build Java2Swift binary..."
9-
swift build
10-
11-
cd -
12-
MODULE_NAME="JavaCommonsCSV"
13-
MODULE_CONFIG_DIR=$(pwd)/Sources/$MODULE_NAME/
14-
15-
### 1) downloads all the dependencies
16-
echo "Resolve dependencies..."
17-
"$JAVASWIFT" --fetch "$MODULE_CONFIG_DIR/swift-java.config" \
18-
--module-name "$MODULE_NAME" \
19-
--cache-dir "Plugins/outputs/javadependencysampleapp/${MODULE_NAME}/destination"
20-
--output-directory "$MODULE_CONFIG_DIR"
21-
22-
#### 2) extract the config for the fetched dependency
23-
MODULE_CONFIG_PATH="$MODULE_CONFIG_DIR/swift-java.config"
24-
DEP_JAR_CP=$(jq .classpath "$MODULE_CONFIG_PATH")
25-
DEP_JAR_CP=$(echo "$DEP_JAR_CP" | tr -d '"') # trim the "..."
26-
27-
# Import just a single class for our test purposes
28-
# shellcheck disable=SC2086
29-
"$JAVASWIFT" --jar $DEP_JAR_CP \
30-
--module-name "$MODULE_NAME" \
31-
--java-package-filter org.apache.commons.io.FilenameUtils \
32-
--existing-config amend
33-
34-
# for now in CI we just use what we have already generated and comitted in the config
35-
36-
### 3) make wrappers for the module
37-
swift run
6+
swift run --disable-sandbox

Sources/JavaKitDependencyResolver/swift-java.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
"dependencies": [
33
"dev.gradleplugins:gradle-api:8.10.1"
44
],
5-
"classpath": "JavaKit/build/classes/java/main",
65
"classes": {
76
"org.swift.javakit.dependencies.DependencyResolver": "DependencyResolver"
87
}

0 commit comments

Comments
 (0)