Skip to content

GH-40037: [C++][FS][Azure] Make attempted reads and writes against directories fail fast #15908

GH-40037: [C++][FS][Azure] Make attempted reads and writes against directories fail fast

GH-40037: [C++][FS][Azure] Make attempted reads and writes against directories fail fast #15908

Workflow file for this run

# 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.
name: MATLAB
on:
push:
paths:
- '.github/workflows/matlab.yml'
- 'ci/scripts/matlab*.sh'
- 'matlab/**'
- 'cpp/src/arrow/**'
pull_request:
paths:
- '.github/workflows/matlab.yml'
- 'ci/scripts/matlab*.sh'
- 'matlab/**'
- 'cpp/src/arrow/**'
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
jobs:
ubuntu:
name: AMD64 Ubuntu 20.04 MATLAB
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install ninja-build
run: sudo apt-get install ninja-build
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: R2023a
- name: Install ccache
run: sudo apt-get install ccache
- name: Setup ccache
shell: bash
run: ci/scripts/ccache_setup.sh
- name: ccache info
id: ccache-info
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: matlab-ccache-ubuntu-${{ hashFiles('cpp/**', 'matlab/**') }}
restore-keys: matlab-ccache-ubuntu-
- name: Build MATLAB Interface
run: ci/scripts/matlab_build.sh $(pwd)
- name: Run MATLAB Tests
env:
# libarrow.so requires a more recent version of libstdc++.so
# than is bundled with MATLAB under <matlabroot>/sys/os/glnxa64.
# Therefore, if a MEX function that depends on libarrow.so
# is executed within the MATLAB address space, runtime linking
# errors will occur. To work around this issue, we can explicitly
# force MATLAB to use the system libstdc++.so via LD_PRELOAD.
LD_PRELOAD: /usr/lib/x86_64-linux-gnu/libstdc++.so.6
# Add the installation directory to the MATLAB Search Path by
# setting the MATLABPATH environment variable.
MATLABPATH: matlab/install/arrow_matlab
uses: matlab-actions/run-tests@v2
with:
select-by-folder: matlab/test
macos:
name: AMD64 macOS 11 MATLAB
runs-on: macos-latest
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install ninja-build
run: brew install ninja
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: R2023a
- name: Install ccache
run: brew install ccache
- name: Setup ccache
shell: bash
run: ci/scripts/ccache_setup.sh
- name: ccache info
id: ccache-info
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: matlab-ccache-macos-${{ hashFiles('cpp/**', 'matlab/**') }}
restore-keys: matlab-ccache-macos-
- name: Build MATLAB Interface
run: ci/scripts/matlab_build.sh $(pwd)
- name: Run MATLAB Tests
env:
# Add the installation directory to the MATLAB Search Path by
# setting the MATLABPATH environment variable.
MATLABPATH: matlab/install/arrow_matlab
uses: matlab-actions/run-tests@v2
with:
select-by-folder: matlab/test
windows:
name: AMD64 Windows 2022 MATLAB
runs-on: windows-2022
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install MATLAB
uses: matlab-actions/setup-matlab@v2
with:
release: R2023a
- name: Download Timezone Database
shell: bash
run: ci/scripts/download_tz_database.sh
- name: Install ccache
shell: bash
run: ci/scripts/install_ccache.sh 4.6.3 /usr
- name: Setup ccache
shell: bash
run: ci/scripts/ccache_setup.sh
- name: ccache info
id: ccache-info
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
with:
path: |
${{ steps.ccache-info.outputs.cache-dir }}
key: matlab-ccache-windows-${{ hashFiles('cpp/**', 'matlab/**') }}
restore-keys: matlab-ccache-windows-
- name: Build MATLAB Interface
shell: cmd
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
bash -c "ci/scripts/matlab_build.sh $(pwd)"
- name: Run MATLAB Tests
env:
# Add the installation directory to the MATLAB Search Path by
# setting the MATLABPATH environment variable.
MATLABPATH: matlab/install/arrow_matlab
uses: matlab-actions/run-tests@v2
with:
select-by-folder: matlab/test