diff --git a/.github/workflows/r-basic.yml b/.github/workflows/r-basic.yml index 5320e794e6..84b84f6a2a 100644 --- a/.github/workflows/r-basic.yml +++ b/.github/workflows/r-basic.yml @@ -38,15 +38,29 @@ permissions: contents: read jobs: - check: + check-c: strategy: matrix: os: [ubuntu] - pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql, adbcflightsql, adbcsnowflake] + pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql] uses: ./.github/workflows/r-check.yml with: os: ${{ matrix.os }} pkg: ${{ matrix.pkg }} + + check-go: + strategy: + matrix: + os: [ubuntu] + pkg: [adbcflightsql, adbcsnowflake, adbcbigquery] + + uses: ./.github/workflows/r-check.yml + with: + os: ${{ matrix.os }} + pkg: ${{ matrix.pkg }} + # For the r-basic check (that runs on many PRs), just check ERRORs + # (e.g., build failure, test failure) + error-on: error secrets: SNOWFLAKE_URI: ${{ secrets.SNOWFLAKE_URI }} diff --git a/.github/workflows/r-check.yml b/.github/workflows/r-check.yml index a2799f8689..2746bc41fc 100644 --- a/.github/workflows/r-check.yml +++ b/.github/workflows/r-check.yml @@ -31,6 +31,10 @@ on: required: false default: release type: string + error-on: + required: false + default: warning + type: string secrets: SNOWFLAKE_URI: required: false @@ -100,6 +104,7 @@ jobs: R_KEEP_PKG_SOURCE: yes with: working-directory: r/${{ inputs.pkg }} + error-on: '"${{ inputs.error-on }}"' - name: Shutdown docker compose services if: runner.os == 'Linux' diff --git a/.github/workflows/r-extended.yml b/.github/workflows/r-extended.yml index 9bd49543e0..fc71e6658a 100644 --- a/.github/workflows/r-extended.yml +++ b/.github/workflows/r-extended.yml @@ -39,12 +39,27 @@ permissions: jobs: # Runs R CMD check on the same platforms/R versions CRAN does - cran: + cran-c: strategy: matrix: rversion: [oldrel, release, devel] os: [macOS, windows, ubuntu] - pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql, adbcflightsql, adbcsnowflake, adbcbigquery] + pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql] + fail-fast: false + + uses: ./.github/workflows/r-check.yml + with: + os: ${{ matrix.os }} + pkg: ${{ matrix.pkg }} + rversion: ${{ matrix.rversion }} + + # Go-based drivers are not distributed on CRAN and are checked with error-on error only + cran-go: + strategy: + matrix: + rversion: [oldrel, release, devel] + os: [macOS, windows, ubuntu] + pkg: [adbcflightsql, adbcsnowflake, adbcbigquery] fail-fast: false uses: ./.github/workflows/r-check.yml @@ -52,16 +67,20 @@ jobs: os: ${{ matrix.os }} pkg: ${{ matrix.pkg }} rversion: ${{ matrix.rversion }} + # Go based drivers generate WARNINGs because some symbols + # are linked in that R CMD check does not allow. + error-on: error secrets: SNOWFLAKE_URI: ${{ secrets.SNOWFLAKE_URI }} # Check older versions of R on Linux. This catches accidental use of newer R functions. + # We don't check Go drivers here because they don't have much R API surface area. rversions: strategy: matrix: rversion: ["3.6", "4.0", "4.1"] os: [ubuntu] - pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql, adbcflightsql, adbcsnowflake, adbcbigquery] + pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql] fail-fast: false uses: ./.github/workflows/r-check.yml @@ -69,18 +88,16 @@ jobs: os: ${{ matrix.os }} pkg: ${{ matrix.pkg }} rversion: ${{ matrix.rversion }} - secrets: - SNOWFLAKE_URI: ${{ secrets.SNOWFLAKE_URI }} # Checks on older verions of R on Windows. The Windows build system changed # several times so we need to check packages on every version. Go-based # drivers aren't supported before 4.2, so we don't check them here. - # We don't need to check R 4.1 because the build system for R 4.0 and R 4.1 - # are the same. + # The test dependencies support the released version and the four previous + # versions (e.g., 4.1 is the minimum supported version as of R 4.5). winrversions: strategy: matrix: - rversion: ["3.6", "4.0"] + rversion: ["4.1"] os: [windows] pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql] fail-fast: false @@ -90,8 +107,6 @@ jobs: os: ${{ matrix.os }} pkg: ${{ matrix.pkg }} rversion: ${{ matrix.rversion }} - secrets: - SNOWFLAKE_URI: ${{ secrets.SNOWFLAKE_URI }} # Runs tests with valgrind. Go does not support valgrind, so we don't run # those tests here. diff --git a/.github/workflows/r-standard.yml b/.github/workflows/r-standard.yml index 907d779844..d5a49169f6 100644 --- a/.github/workflows/r-standard.yml +++ b/.github/workflows/r-standard.yml @@ -46,15 +46,30 @@ permissions: contents: read jobs: - check: + check-c: strategy: matrix: os: [ubuntu, macOS, windows] - pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql, adbcflightsql, adbcsnowflake, adbcbigquery] + pkg: [adbcdrivermanager, adbcsqlite, adbcpostgresql] uses: ./.github/workflows/r-check.yml with: os: ${{ matrix.os }} pkg: ${{ matrix.pkg }} + + # Go-based drivers are not distributed on CRAN and are checked with error-on error only + check-go: + strategy: + matrix: + os: [ubuntu, macOS, windows] + pkg: [adbcflightsql, adbcsnowflake, adbcbigquery] + + uses: ./.github/workflows/r-check.yml + with: + os: ${{ matrix.os }} + pkg: ${{ matrix.pkg }} + # Go based drivers generate WARNINGs because some symbols + # are linked in that R CMD check does not allow. + error-on: error secrets: SNOWFLAKE_URI: ${{ secrets.SNOWFLAKE_URI }}