Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
f27c21a
make network build work with r5 7.5, #540
mattwigway Jan 1, 2026
686e4e2
initial work on not autobuilding jar
mattwigway Jan 1, 2026
f38de52
rename workflow as it no longer builds jar
mattwigway Jan 1, 2026
46ed447
remove jar from repo
mattwigway Jan 1, 2026
5ccb67f
put configure in correct directory
mattwigway Jan 1, 2026
523eab8
fix paths
mattwigway Jan 1, 2026
6b99a07
move java code into R package src/ directory so it is available to R …
mattwigway Jan 1, 2026
f8ba5cf
suggest devtools for java build
mattwigway Jan 1, 2026
2cfb47c
fix jar path
mattwigway Jan 1, 2026
792a659
correct file extension
mattwigway Jan 1, 2026
b432814
update gitignore for new java location
mattwigway Jan 1, 2026
88dbb05
move java code to r-package/java
mattwigway Jan 1, 2026
0649e59
validate gradle wrapper now that build is not happening in GH Actions
mattwigway Jan 1, 2026
9c8da64
fix gitignore for renamed packages
mattwigway Jan 1, 2026
547024b
update to gradle 9 for r5 7.5 compatibility
mattwigway Mar 28, 2026
0c1be8b
get r5 building
mattwigway Mar 28, 2026
bc67811
build shadowJar of r5r
mattwigway Mar 28, 2026
674947f
fix JAI/elevation issues
mattwigway Mar 28, 2026
cb108d5
rebuild docs
mattwigway Mar 28, 2026
e6a6b60
rm r5r_cache from vignettes, no longer used
mattwigway Mar 28, 2026
8d52bd4
checkout submodules on GH actions
mattwigway Mar 28, 2026
8f8ec20
clean up build files to exclude big files as much as possible
mattwigway Mar 28, 2026
5dd61df
remove r5r_cache and download_r5 from tests
mattwigway Mar 28, 2026
dca4d00
rm caching jars
mattwigway Apr 13, 2026
6a7fe9c
Merge branch 'master' into build-java-on-r-build
alexmgns May 13, 2026
67bc745
add pr trigger
alexmgns May 13, 2026
a6c7ef9
add submodules: true to test-coverage and R-cmd check
alexmgns May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 10 additions & 101 deletions .github/workflows/jar-and-R-ci.yaml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,12 @@ name: CI

on:
push:
paths:
- java-r5rcore/**
- r-package/**
- .github/workflows/**

jobs:
build-jar:
env:
GH_TOKEN: ${{ github.token }}

runs-on: ubuntu-latest

# don't build on merges to master
if: ${{ !github.ref_protected }}

steps:
- uses: actions/checkout@v3
- name: Set up R
uses: r-lib/actions/setup-r@v2
# with:
# use-public-rspm: true # this no longer works as of September 2025

- name: Install R packages
run: |
# this specification is necessary for some reason as of September 2025
options(repos = c(CRAN = "https://packagemanager.posit.co/cran/__linux__/noble/latest"))
install.packages(c('devtools', 'remotes'))
remotes::install_deps(dependencies = TRUE)
shell: Rscript {0}
working-directory: r-package
pull_request:

- name: Install system dependencies
run: |
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
working-directory: r-package

- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: '21'
distribution: 'temurin'
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@v2
- name: Build with Gradle
uses: gradle/gradle-build-action@749f47bda3e44aa060e82d7b3ef7e40d953bd629
with:
arguments: build
build-root-directory: java-r5rcore

- name: Create pull request
# https://github.com/actions/checkout/pull/1184
run: |
NEW_JAR="java-r5rcore/build/libs/java-r5rcore-*.jar"
TARGET_JAR="r-package/inst/jar/r5r.jar"

new_sha=$(sha256sum $NEW_JAR | awk '{print $1}')
# ensure file exists and then compute sha
old_sha=$( [ -f "$TARGET_JAR" ] && sha256sum "$TARGET_JAR" | awk '{print $1}' || echo "" )

echo "NEW: $new_sha"
echo "OLD: $old_sha"

# Only push if sha different
if [ "$new_sha" != "$old_sha" ]; then
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

echo "JAR changed — updating."
mv $NEW_JAR $TARGET_JAR
git add $TARGET_JAR
git commit -m "Rebuild JAR for commit ${GITHUB_SHA}"
git push
else
echo "JAR unchanged — skipping commit."
fi

jobs:
R-CMD-check:
needs: build-jar

runs-on: ${{ matrix.config.os }}

name: R-CMD-check ${{ matrix.config.os }} (R ${{ matrix.config.r }})
Expand All @@ -103,15 +27,13 @@ jobs:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: true

- name: Sync to latest HEAD including rebuilt JAR
run: |
git fetch origin "${{ github.ref_name }}"
git checkout "${{ github.ref_name }}"
git pull origin "${{ github.ref_name }}"
# ensure our gradle wrapper is correct, https://github.com/gradle/actions/blob/main/docs/wrapper-validation.md
- uses: gradle/actions/wrapper-validation@v5

- uses: r-lib/actions/setup-r@v2
with:
Expand Down Expand Up @@ -147,8 +69,6 @@ jobs:
working-directory: r-package

R-CMD-check-CRAN:
needs: build-jar

runs-on: ${{ matrix.config.os }}

name: R-CMD-check-CRAN
Expand All @@ -164,15 +84,10 @@ jobs:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Sync to latest HEAD including rebuilt JAR
run: |
git fetch origin "${{ github.ref_name }}"
git checkout "${{ github.ref_name }}"
git pull origin "${{ github.ref_name }}"
submodules: true

- uses: r-lib/actions/setup-r@v2
with:
Expand All @@ -194,20 +109,14 @@ jobs:
NOT_CRAN: false

test-coverage:
needs: build-jar

runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v6
with:
fetch-depth: 0
submodules: true

- name: Sync to latest HEAD including rebuilt JAR
run: |
git fetch origin "${{ github.ref_name }}"
git checkout "${{ github.ref_name }}"
git pull origin "${{ github.ref_name }}"

- uses: r-lib/actions/setup-r@v2

Expand Down
19 changes: 11 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ java-api/out
java-api/target
java-r5/target
r-package/.Rproj.user
r-package/inst/jar/*
!r-package/inst/jar/.gitkeep
r-package/.Rhistory
R5.jar
r5r_core.jar
Expand All @@ -15,15 +17,16 @@ poa_osm.pbf.mapdb
poa_osm.pbf.mapdb.p
/r-package/inst/extdata/spo/spo_osm.pbf.mapdb
/r-package/inst/extdata/spo/spo_osm.pbf.mapdb.p
java-r5rcore/out/artifacts/r5r_jar/r5r.jar
java-r5rcore/out/production/r5r/org/ipea/r5r/DetailedItineraryPlanner.class
java-r5rcore/out/production/r5r/org/ipea/r5r/R5RCore.class
java-r5rcore/out/production/r5r/org/ipea/r5r/RDataFrame.class
java-r5rcore/out/production/r5r/org/ipea/r5r/TravelTimeMatrixComputer.class
java-r5rcore/out
java-r5rcore/libs
r-package/java/out/artifacts/r5r_jar/r5r.jar
r-package/java/out/production/r5r/org/ipea/r5r/DetailedItineraryPlanner.class
r-package/java/out/production/r5r/org/ipea/r5r/R5RCore.class
r-package/java/out/production/r5r/org/ipea/r5r/RDataFrame.class
r-package/java/out/production/r5r/org/ipea/r5r/TravelTimeMatrixComputer.class
r-package/java/out
r-package/java/libs
r-package/java/build
.DS_Store
java-r5rcore/target
r-package/java/target
.*.swp
jpa-buddy.xml
r5-*.jar
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "r-package/java/r5"]
path = r-package/java/r5
url = https://github.com/conveyal/r5.git
6 changes: 6 additions & 0 deletions configure
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/usr/bin/env sh

(
cd src
./gradlew build
)
42 changes: 0 additions & 42 deletions java-r5rcore/build.gradle

This file was deleted.

Binary file removed java-r5rcore/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
12 changes: 11 additions & 1 deletion r-package/.Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@
^inst/extdata/.*/.*\.mapdb\.p$
^\.github$
^inst/img
^inst/jar/r5-.*\.jar$
# The JAR will be included in the binary package, because it is not in .Rinstignore
^inst/jar$
^man/figures
^cran-comments\.md$
^java/r5r/build$
^java/r5/build$
^java/build$
^java/r5r/.gradle$
^java/r5/.gradle$
^java/.gradle$

# lots of big files used in r5 tests, which we don't need to run
^java/r5/src/test$
3 changes: 3 additions & 0 deletions r-package/.Rinstignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
^extdata/.*/.*\.dat$
^extdata/.*/.*\.log$
^extdata/.*/.*\.mapdb\.p$
4 changes: 3 additions & 1 deletion r-package/DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,12 @@ Suggests:
patchwork,
rJavaEnv,
rmarkdown,
testthat
testthat,
devtools
VignetteBuilder:
knitr
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.3.3
SystemRequirements: Java JDK (>= 21.0)
Biarch: true
2 changes: 0 additions & 2 deletions r-package/NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@ export(arrival_travel_time_matrix)
export(build_network)
export(check_transit_availability)
export(detailed_itineraries)
export(download_r5)
export(expanded_travel_time_matrix)
export(find_snap)
export(get_gtfs_errors)
export(isochrone)
export(pareto_frontier)
export(r5r_cache)
export(r5r_sitrep)
export(read_fare_structure)
export(setup_fare_structure)
Expand Down
Loading