Skip to content

Chore/extendr 0.7.0 support #3503

Chore/extendr 0.7.0 support

Chore/extendr 0.7.0 support #3503

Workflow file for this run

# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
on:
push:
branches:
- main
paths:
- .Rbuildignore
- R/**
- src/**
- tests/**
- tools/**
- vignettes/*
- configure*
- DESCRIPTION
- NAMESPACE
pull_request:
branches:
- main
paths:
- .github/actions/setup/action.yaml
- .github/workflows/check.yaml
- .Rbuildignore
- R/**
- src/**
- tests/**
- tools/**
- vignettes/*
- configure*
- DESCRIPTION
- NAMESPACE
workflow_dispatch:
name: R-CMD-check
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
permissions: read-all
jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) ${{ matrix.config.full-features && 'full-features' || '' }}
strategy:
fail-fast: false
matrix:
config:
- { os: macos-14, r: "release" }
- { os: windows-latest, r: "devel" }
- { os: windows-latest, r: "release" }
- { os: ubuntu-latest, r: "devel", http-user-agent: "release" }
- { os: ubuntu-latest, r: "release" }
- { os: ubuntu-latest, r: "oldrel-1" }
include:
- config: { os: macos-14, r: "release", full-features: true }
- config: { os: windows-latest, r: "release", full-features: true }
- config: { os: ubuntu-latest, r: "release", full-features: true }
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes
LIBR_POLARS_BUILD: "true"
steps:
- uses: actions/checkout@v4
- name: Set rust target
id: rust-target
run: |
if [ "${{ runner.os }}" == "Windows" ]; then
echo "TARGET=x86_64-pc-windows-gnu" >>"$GITHUB_OUTPUT"
else
echo "TARGET=$(rustc -vV | grep host | cut -d' ' -f2)" >>"$GITHUB_OUTPUT"
fi
- name: Set env vars for build option
if: matrix.config.full-features
run: |
echo "LIBR_POLARS_FEATURES=full_features" >>"$GITHUB_ENV"
echo "LIBR_POLARS_PROFILE=release" >>"$GITHUB_ENV"
- uses: ./.github/actions/setup
with:
rust-nightly: "${{ matrix.config.full-features }}"
target: "${{ steps.rust-target.outputs.TARGET }}"
token: "${{ secrets.GITHUB_TOKEN }}"
- uses: r-lib/actions/setup-pandoc@v2
- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
Ncpus: 2
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- name: Build lib
env:
NOT_CRAN: "true"
run: |
Rscript -e 'pkgbuild::compile_dll()'
echo "LIBR_POLARS_PATH=$(pwd)/src/rust/target/${{ steps.rust-target.outputs.TARGET }}/release/libr_polars.a" >>"$GITHUB_ENV"
- uses: r-lib/actions/check-r-package@v2
env:
LIBR_POLARS_BUILD: "false"
with:
upload-snapshots: false
error-on: '"never"' #errors are filtered by rules below
- name: raise remaining rcmdcheck errors
run: |
print(getwd());
source("./inst/misc/filter_rcmdcheck.R");
shell: Rscript {0}
- name: upload artifact
if: matrix.config.full-features
uses: actions/upload-artifact@v4
with:
name: checked-lib-${{ steps.rust-target.outputs.TARGET }}
path: ${{ env.LIBR_POLARS_PATH }}
source-with-bin-check:
runs-on: ${{ matrix.os }}
name: ${{ matrix.os }} with pre-built binary (${{ matrix.r }})
strategy:
fail-fast: false
matrix:
os:
- macos-12
- macos-14
- windows-latest
- ubuntu-latest
r:
- oldrel-1
- release
- devel
exclude:
- os: macos-12
r: devel
- os: macos-12
r: oldrel-1
- os: macos-14
r: devel
- os: macos-14
r: oldrel-1
env:
NOT_CRAN: "true"
LIB_SUMS_PATH: "tools/lib-sums.tsv"
steps:
- uses: actions/checkout@v4
- name: Check for pre-built binary
run: |
if [[ -f "${LIB_SUMS_PATH}" ]]; then
echo "TEST_BIN_LIB=true" >>"${GITHUB_ENV}"
rm -f "$(rustup which cargo)"
else
echo "TEST_BIN_LIB=false" >>"${GITHUB_ENV}"
fi
- uses: r-lib/actions/setup-pandoc@v2
if: env.TEST_BIN_LIB == 'true'
- uses: r-lib/actions/setup-r@v2
if: env.TEST_BIN_LIB == 'true'
with:
r-version: ${{ matrix.r }}
use-public-rspm: true
Ncpus: "2"
- uses: r-lib/actions/setup-r-dependencies@v2
if: env.TEST_BIN_LIB == 'true'
with:
extra-packages: any::testthat, any::remotes
needs: check
- name: Install with pre-built binary
if: env.TEST_BIN_LIB == 'true'
shell: Rscript {0}
run: |
remotes::install_local(force = TRUE)
testthat::test_dir("tests")