Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
102 changes: 2 additions & 100 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,9 @@ 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

- 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

R-CMD-check:
needs: build-jar

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

name: R-CMD-check ${{ matrix.config.os }} (R ${{ matrix.config.r }})
Expand All @@ -107,11 +28,8 @@ jobs:
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 }}"
# 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 +65,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 @@ -168,12 +84,6 @@ jobs:
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 }}"

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
Expand All @@ -194,21 +104,13 @@ jobs:
NOT_CRAN: false

test-coverage:
needs: build-jar

runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v2
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 }}"

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

- name: Java setup
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
Loading