Skip to content

GH-45296: [Python] Only enable the string dtype on pandas export for … #192

GH-45296: [Python] Only enable the string dtype on pandas export for …

GH-45296: [Python] Only enable the string dtype on pandas export for … #192

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: C#
on:
push:
branches:
- '**'
- '!dependabot/**'
tags:
- '**'
paths:
- '.github/workflows/csharp.yml'
- 'ci/scripts/csharp_*'
- 'csharp/**'
pull_request:
paths:
- '.github/workflows/csharp.yml'
- 'ci/scripts/csharp_*'
- 'csharp/**'
concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions:
contents: read
jobs:
ubuntu:
name: AMD64 Ubuntu 24.04 C# ${{ matrix.dotnet }}
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
dotnet: ['8.0.x']
steps:
- name: Install C#
uses: actions/[email protected]
with:
dotnet-version: ${{ matrix.dotnet }}
- name: Setup Python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: 3
- name: Checkout Arrow
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Source Link
shell: bash
run: dotnet tool install --global sourcelink
- name: Build
shell: bash
run: ci/scripts/csharp_build.sh $(pwd)
- name: Test
shell: bash
run: ci/scripts/csharp_test.sh $(pwd)
windows:
name: AMD64 Windows 2019 18.04 C# ${{ matrix.dotnet }}
runs-on: windows-2019
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
dotnet: ['8.0.x']
steps:
- name: Install C#
uses: actions/[email protected]
with:
dotnet-version: ${{ matrix.dotnet }}
- name: Checkout Arrow
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Source Link
run: dotnet tool install --global sourcelink
- name: Build
shell: bash
run: ci/scripts/csharp_build.sh $(pwd)
- name: Test
shell: bash
run: ci/scripts/csharp_test.sh $(pwd)
macos:
name: AMD64 macOS 13 C# ${{ matrix.dotnet }}
runs-on: macos-13
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
dotnet: ['8.0.x']
steps:
- name: Install C#
uses: actions/[email protected]
with:
dotnet-version: ${{ matrix.dotnet }}
- name: Setup Python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: 3.12
- name: Checkout Arrow
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Source Link
shell: bash
run: dotnet tool install --global sourcelink
- name: Build
shell: bash
run: ci/scripts/csharp_build.sh $(pwd)
- name: Test
shell: bash
run: ci/scripts/csharp_test.sh $(pwd)
package:
name: Package
# Branch or RC tag
if: github.ref_type != 'tag' || contains(github.ref_name, 'rc')
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: write
steps:
- name: Checkout for utilities
if: github.ref_type == 'tag'
uses: actions/checkout@v4
with:
path: arrow
- name: Download source archive
if: github.ref_type == 'tag'
run: |
arrow/dev/release/utils-watch-gh-workflow.sh \
${GITHUB_REF_NAME} \
release_candidate.yml
gh release download ${GITHUB_REF_NAME} \
--pattern "*.tar.gz" \
--repo ${GITHUB_REPOSITORY}
tar -xf *.tar.gz --strip-components=1
mv csharp/dummy.git .git
env:
GH_TOKEN: ${{ github.token }}
- name: Checkout
if: github.ref_type != 'tag'
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Prepare version
if: github.ref_type != 'tag'
run: |
# apache-arrow-20.0.0.dev-9-g758867f907 ->
# 20.0.0.dev-9-g758867f907 ->
# 20.0.0.dev-9 ->
# 20.0.0-dev-9
semver="$(git describe --tags | \
sed -E \
-e 's/^apache-arrow-//' \
-e 's/-[^-]*$//' \
-e 's/^([0-9]*\.[0-9]*\.[0-9])\./\1-/')"
sed -i'' -E -e \
"s/^ <Version>.+<\/Version>/ <Version>${semver}<\/Version>/" \
csharp/Directory.Build.props
- name: Setup Python
uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0
with:
python-version: 3
- name: Setup Archery
run: |
python3 -m pip install -e 'dev/archery[docker]'
- name: Build
run: |
archery docker run ubuntu-csharp
- name: Prepare artifacts
run: |
shopt -s globstar
cp csharp/artifacts/**/*.{,s}nupkg ./
for artifact in *.{,s}nupkg; do
dev/release/utils-generate-checksum.sh "${artifact}"
done
- name: Upload
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
with:
name: nuget
path: |
*.nupkg
*.sha256
*.sha512
*.snupkg
- name: Publish
if: github.ref_type == 'tag'
run: |
gh release upload ${GITHUB_REF_NAME} \
--repo ${GITHUB_REPOSITORY} \
*.nupkg \
*.sha256 \
*.sha512 \
*.snupkg
env:
GH_TOKEN: ${{ github.token }}