Skip to content

Commit 43001a9

Browse files
chore(ci): Fix failing weekly jobs (#603)
This PR: - Updates the integration test workflow to not cache a weekly build, which was failing with "no space left on device". It also runs more tests than are strictly necessary at the commit level (and takes slightly longer without the cached weekly build), so this PR makes it part of a weekly run instead. - Updates the alpine dockerfile to avoid a `desc` dependency, since this fails to install on s390x - Update two tests to account for a function that returns the value of `errno` (that might not be the same everywhere) It also updates the weekly jobs for consistency: - Updates the weekly jobs to always run on the `maint-**` branches - Update all of them to cancel previous runs of the same workflow (because many of them have long-running jobs) It doesn't fix IPC writing on big endian (a different kind of failure that I'll punt to another PR). --------- Co-authored-by: Jacob Wujciak-Jens <[email protected]>
1 parent 567748d commit 43001a9

File tree

8 files changed

+22
-11
lines changed

8 files changed

+22
-11
lines changed

.github/workflows/docker-build.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ jobs:
4646
- { runs_on: "ubuntu-latest", platform: "fedora", arch: "amd64", service: "verify" }
4747
- { runs_on: "ubuntu-latest", platform: "archlinux", arch: "amd64", service: "verify" }
4848
- { runs_on: "ubuntu-latest", platform: "alpine", arch: "amd64", service: "verify" }
49-
- { runs_on: "ubuntu-latest", arch: "amd64", platform: "integration", service: "integration" }
5049

5150
- { runs_on: ["self-hosted", "arm"], platform: "ubuntu", arch: "arm64", service: "verify" }
5251
- { runs_on: ["self-hosted", "arm"], platform: "fedora", arch: "arm64", service: "verify" }

.github/workflows/integration.yaml

+9-2
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,21 @@ on:
2121
push:
2222
branches:
2323
- main
24+
- 'maint-*'
2425
pull_request:
2526
paths:
2627
- .github/workflows/integration.yaml
27-
- src/nanoarrow/**
28+
- docker-compose.yml
29+
schedule:
30+
- cron: '5 0 * * 0'
2831

2932
permissions:
3033
contents: read
3134

35+
concurrency:
36+
group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }}
37+
cancel-in-progress: true
38+
3239
jobs:
3340
integration:
3441
runs-on: ubuntu-latest
@@ -37,5 +44,5 @@ jobs:
3744

3845
- name: Run integration tests
3946
run: |
40-
echo "::group::Docker Pull"
47+
echo "::group::Docker Build"
4148
docker compose run --rm -e GITHUB_ACTIONS integration

.github/workflows/python-wheels.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ on:
3131
push:
3232
branches:
3333
- main
34+
- 'maint-**'
3435
workflow_dispatch:
3536

3637
permissions:

.github/workflows/verify.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
name: Verification
1919

2020
on:
21+
push:
22+
branches:
23+
- 'maint-**'
2124
workflow_dispatch:
2225
inputs:
2326
version:
@@ -43,6 +46,10 @@ on:
4346
permissions:
4447
contents: read
4548

49+
concurrency:
50+
group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }}
51+
cancel-in-progress: true
52+
4653
jobs:
4754
verify:
4855
name: "${{ matrix.config.label }}"

ci/docker/alpine.dockerfile

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ ENV NANOARROW_PYTHON_VENV "/venv"
3333

3434
# For R. Note that arrow is not installed (takes too long).
3535
RUN mkdir ~/.R && echo "MAKEFLAGS = -j$(nproc)" > ~/.R/Makevars
36-
RUN R -e 'install.packages("desc", repos = "https://cloud.r-project.org")' && mkdir /tmp/rdeps
3736
COPY r/DESCRIPTION /tmp/rdeps
38-
RUN R -e 'install.packages(setdiff(desc::desc("/tmp/rdeps")$get_deps()$package, "arrow"), repos = "https://cloud.r-project.org")'
37+
RUN R -e 'gsub("\\(.*?\\)", "", read.dcf("/tmp/rdeps")[1, "Suggests"]) |> strsplit("[^A-Za-z0-9.]+") |> unlist(use.names = FALSE) |> setdiff("arrow") |> install.packages(repos = "https://cloud.r-project.org")'
3938
RUN rm -f ~/.R/Makevars
4039

4140
ENV NANOARROW_CMAKE_OPTIONS -DArrow_DIR=/arrow/lib/cmake/Arrow

docker-compose.yml

+2-6
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
version: '3.5'
19-
2018
services:
2119
verify:
2220
image: ${REPO}:${NANOARROW_PLATFORM}-${NANOARROW_ARCH}
@@ -48,12 +46,10 @@ services:
4846
command: "/bin/bash /build-docs.sh /nanoarrow"
4947

5048
integration:
51-
# Based on an arrow-dev repo image that is amd64 only
52-
image: ${REPO}:integration-amd64
49+
# Don't cache here (building the image takes about the same amount of time
50+
# as downloading on CI)
5351
build:
5452
context: .
55-
cache_from:
56-
- ${REPO}:integration-amd64
5753
dockerfile: ci/docker/integration.dockerfile
5854
volumes:
5955
- ${NANOARROW_DOCKER_SOURCE_DIR}:/arrow-integration/nanoarrow

src/nanoarrow/ipc/reader_test.cc

+1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ TEST(NanoarrowIpcReader, InputStreamBuffer) {
101101

102102
TEST(NanoarrowIpcReader, InputStreamFile) {
103103
struct ArrowIpcInputStream stream;
104+
errno = EINVAL;
104105
ASSERT_EQ(ArrowIpcInputStreamInitFile(&stream, nullptr, 1), EINVAL);
105106

106107
uint8_t input_data[] = {0x01, 0x02, 0x03, 0x04, 0x05};

src/nanoarrow/ipc/writer_test.cc

+1
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ TEST(NanoarrowIpcWriter, OutputStreamFile) {
9292

9393
TEST(NanoarrowIpcWriter, OutputStreamFileError) {
9494
nanoarrow::ipc::UniqueOutputStream stream;
95+
errno = EINVAL;
9596
EXPECT_EQ(ArrowIpcOutputStreamInitFile(stream.get(), nullptr, /*close_on_release=*/1),
9697
EINVAL);
9798

0 commit comments

Comments
 (0)