-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(ci): Add integration test CI docker image with all the arrows (#…
…557) This PR adds an integration test run for every commit by caching a recent docker image build (weekly) containing the built versions of integration tests from the Arrow monorepo and arrow-rs. This should result in a CI job with a reasonable run time that provides high-level testing and type coverage. This is based on the arrow-rs version of the integration test job ( https://github.com/apache/arrow-rs/blob/6d4e2f2ceaf423031b0bc72f54c547dd77a0ddbb/.github/workflows/integration.yml ). --------- Co-authored-by: Jacob Wujciak-Jens <[email protected]>
- Loading branch information
1 parent
812428e
commit bfa1bee
Showing
4 changed files
with
138 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# 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: integration | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
paths: | ||
- .github/workflows/integration.yaml | ||
- src/nanoarrow/** | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
integration: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
|
||
- name: Run integration tests | ||
run: | | ||
echo "::group::Docker Pull" | ||
docker compose run --rm -e GITHUB_ACTIONS integration |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# 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. | ||
|
||
FROM apache/arrow-dev:amd64-conda-integration | ||
|
||
ENV ARROW_USE_CCACHE=OFF \ | ||
ARROW_CPP_EXE_PATH=/build/cpp/debug \ | ||
ARROW_NANOARROW_PATH=/build/nanoarrow \ | ||
ARROW_RUST_EXE_PATH=/build/rust/debug \ | ||
BUILD_DOCS_CPP=OFF \ | ||
ARROW_INTEGRATION_CPP=ON \ | ||
ARROW_INTEGRATION_CSHARP=ON \ | ||
ARROW_INTEGRATION_GO=ON \ | ||
ARROW_INTEGRATION_JAVA=ON \ | ||
ARROW_INTEGRATION_JS=ON \ | ||
ARCHERY_INTEGRATION_WITH_NANOARROW="1" \ | ||
ARCHERY_INTEGRATION_WITH_RUST="1" | ||
|
||
# These are necessary because the github runner overrides $HOME | ||
# https://github.com/actions/runner/issues/863 | ||
ENV RUSTUP_HOME=/root/.rustup | ||
ENV CARGO_HOME=/root/.cargo | ||
|
||
ENV ARROW_USE_CCACHE=OFF | ||
ENV ARROW_CPP_EXE_PATH=/build/cpp/debug | ||
ENV ARROW_NANOARROW_PATH=/build/nanoarrow | ||
ENV ARROW_RUST_EXE_PATH=/build/rust/debug | ||
ENV BUILD_DOCS_CPP=OFF | ||
|
||
# Clone the arrow monorepo | ||
RUN git clone https://github.com/apache/arrow.git /arrow-integration --recurse-submodules | ||
|
||
# Clone the arrow-rs repo | ||
RUN git clone https://github.com/apache/arrow-rs /arrow-integration/rust | ||
|
||
# Workaround: stable rust is not compatible with glibc provided by the | ||
# provided arrow docker image https://github.com/apache/arrow/issues/41637 | ||
RUN cd /arrow-integration/rust && rustup override set 1.77 | ||
|
||
# Build all the integrations except nanoarrow (since we'll do that ourselves on each run) | ||
RUN ARCHERY_INTEGRATION_WITH_NANOARROW="0" \ | ||
conda run --no-capture-output \ | ||
/arrow-integration/ci/scripts/integration_arrow_build.sh \ | ||
/arrow-integration \ | ||
/build |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters