]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/arrow/dev/tasks/r/github.linux.arrow.version.back.compat.yml
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / dev / tasks / r / github.linux.arrow.version.back.compat.yml
diff --git a/ceph/src/arrow/dev/tasks/r/github.linux.arrow.version.back.compat.yml b/ceph/src/arrow/dev/tasks/r/github.linux.arrow.version.back.compat.yml
new file mode 100644 (file)
index 0000000..e48b67a
--- /dev/null
@@ -0,0 +1,117 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# NOTE: must set "Crossbow" as name to have the badge links working in the
+# github comment reports!
+name: Crossbow
+
+on:
+  push
+
+jobs:
+  write-files:
+    name: "Write files"
+    runs-on: ubuntu-20.04
+    strategy:
+      fail-fast: false
+    env:
+      ARROW_R_DEV: "TRUE"
+      RSPM: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"
+    steps:
+      - name: Checkout Arrow
+        run: |
+          git clone --no-checkout {{ arrow.remote }} arrow
+          git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }}
+          git -C arrow checkout FETCH_HEAD
+          git -C arrow submodule update --init --recursive
+      - name: Free Up Disk Space
+        shell: bash
+        run: arrow/ci/scripts/util_cleanup.sh
+      - name: Fetch Submodules and Tags
+        shell: bash
+        run: cd arrow && ci/scripts/util_checkout.sh
+      - uses: r-lib/actions/setup-r@v1
+      - name: Install dependencies
+        run: |
+          install.packages(c("remotes", "glue", "sys"))
+          remotes::install_deps("arrow/r", dependencies = TRUE)
+        shell: Rscript {0}
+      - name: Install Arrow
+        run: |
+          cd arrow/r
+          R CMD INSTALL .
+        shell: bash
+      - name: Write files
+        run: |
+          cd arrow/r
+          R -f extra-tests/write-files.R
+        shell: bash
+
+      - name: Upload the parquet artifacts
+        uses: actions/upload-artifact@v2
+        with:
+          name: files
+          path: arrow/r/extra-tests/files
+
+  read-files:
+    name: "Read files with Arrow {{ '${{ matrix.config.old_arrow_version }}' }}"
+    needs: [write-files]
+    runs-on: ubuntu-20.04
+    strategy:
+      fail-fast: false
+      matrix:
+        config:
+        # We use the R version that was released at the time of the arrow release in order
+        # to make sure we can download binaries from RSPM.
+        - { old_arrow_version: '5.0.0', r: '4.1' }
+        - { old_arrow_version: '4.0.0', r: '4.0' }
+        - { old_arrow_version: '3.0.0', r: '4.0' }
+        - { old_arrow_version: '2.0.0', r: '4.0' }
+        - { old_arrow_version: '1.0.1', r: '4.0' }
+    env:
+      ARROW_R_DEV: "TRUE"
+      RSPM: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"
+      OLD_ARROW_VERSION: {{ '${{ matrix.config.old_arrow_version }}' }}
+    steps:
+      - name: Checkout Arrow
+        run: |
+          git clone --no-checkout {{ arrow.remote }} arrow
+          git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }}
+          git -C arrow checkout FETCH_HEAD
+          git -C arrow submodule update --init --recursive
+      - uses: r-lib/actions/setup-r@v1
+        with:
+          r-version: {{ '${{ matrix.config.r }}' }}
+      - name: Install old Arrow
+        run: |
+          install.packages(c("remotes", "testthat"))
+          remotes::install_version("arrow",  "{{ '${{ matrix.config.old_arrow_version }}' }}")
+        shell: Rscript {0}
+      - name: Setup our testing directory, copy only the tests to it.
+        run: |
+          mkdir -p extra-tests/files
+          cp arrow/r/extra-tests/helper*.R extra-tests/
+          cp arrow/r/extra-tests/test-*.R extra-tests/
+      - name: Download artifacts
+        uses: actions/download-artifact@v2
+        with:
+          name: files
+          path: extra-tests/files
+      - name: Test reading
+        run: |
+          testthat::test_dir("extra-tests")
+        shell: Rscript {0}