Skip to content

Conversation

@lidavidm
Copy link
Member

@lidavidm lidavidm commented Apr 21, 2025

We've only really tested Conda so far. Validate non-Conda builds too.

This only tests Ubuntu/APT but eventually we should also test Debian/APT, macOS/Homebrew, Fedora/RPM, and AlmaLinux/RPM.

@lidavidm lidavidm force-pushed the minor-nightly-docker branch 4 times, most recently from 3823d24 to 5cf889c Compare April 21, 2025 12:47
@lidavidm lidavidm changed the title ci: also verify under Docker with native deps ci: also verify under Docker with native deps Apr 21, 2025
@lidavidm lidavidm force-pushed the minor-nightly-docker branch 11 times, most recently from cb2870b to 804d839 Compare April 22, 2025 12:01
@lidavidm lidavidm changed the title ci: also verify under Docker with native deps ci: also verify source using OS-installed dependencies Apr 22, 2025
@lidavidm lidavidm changed the title ci: also verify source using OS-installed dependencies ci: verify source using OS-installed dependencies Apr 22, 2025
@lidavidm lidavidm marked this pull request as ready for review April 22, 2025 12:02
@lidavidm lidavidm requested review from kou and zeroshade as code owners April 22, 2025 12:02
@github-actions github-actions bot modified the milestone: ADBC Libraries 18 Apr 22, 2025
We've only really tested Conda so far.  Validate non-Conda builds
too.
@lidavidm lidavidm force-pushed the minor-nightly-docker branch from 804d839 to 9f9c7d4 Compare April 22, 2025 12:39
Comment on lines +273 to +274
local dotnet_download_thank_you_url=https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-${dotnet_version}-${dotnet_platform}-x64-binaries
show_info "Getting .NET download URL from ${dotnet_download_thank_you_url}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I appreciate the politeness exuded by dotnet's download URL 🙂

Comment on lines 73 to 79
# Install R
# https://cloud.r-project.org/bin/linux/ubuntu/

wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | \
tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc

add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OS: ${{ matrix.os }}
OS_VERSION: ${{ matrix.version }}
run: |
# Hmm, -e doesn't work?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this work now?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't get it to work - I'll just remove the comment but I'm not quite sure what's going on here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does it mean that this step isn't failed when docker compose run is failed?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh - no, the step works. What I mean is that I expected docker compose run -e UBUNTU=22.04 ... to also work, but it seems that docker ignores the -e switch.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I understand.

env UBUNTU=22.04 ... is used in ${UBUNTU} in compose.yaml and ... -e UBUNTU=22.04 ... is used in a container created by docker compose run. In this case, we want to use ${UBUNTU} in compose.yaml. So we need to use env UBUNTU=22.04 ... not ... -e UBUNTU=22.04 ... here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example:

lidavidm@rondo ~/C/arrow-adbc (minor-nightly-docker)> docker compose run --rm -e UBUNTU=22.04 -it verify-all-ubuntu /bin/bash
WARN[0000] The "UBUNTU" variable is not set. Defaulting to a blank string. 
WARN[0000] /home/lidavidm/Code/arrow-adbc/compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion 
[+] Creating 1/1
 ✔ Network arrow-adbc_default  Created                                                                                                                                                   0.0s 
unable to get image 'ubuntu:': Error response from daemon: invalid reference format

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's expected. Because we use ${UBUNTU} at https://github.com/apache/arrow-adbc/pull/2718/files#diff-facaded51b7d1c9656ae43b449b69aa398fee9129321a0001d97048c00c8cc1cR282 .
It's in compose.yaml. It's referred BEFORE docker compose run creates a container. docker compose run -e sets an environment variable for container.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah sorry, I didn't see your first comment somehow. I suppose I misunderstood how they work together then, or maybe it's archery that uses -e to set variables for the container?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both of Archery and docker compose run use -e to set environment variables for the container. (archery docker run is a wrapper of docker compose run.)

FYI: We need to use UBUNTU=24.04 archery docker run ubuntu-cpp to use Ubuntu 24.04 for ubuntu-cpp service. We can't use -e for it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, then I just misunderstood how it works in the first place, sorry 🙁

run: |
# Hmm, -e doesn't work?
pushd arrow-adbc
env ${OS@U}=${OS_VERSION} docker compose run --rm verify-all-${OS}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wow! I didn't know @U!

Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Co-authored-by: Dewey Dunnington <dewey@dunnington.ca>
@lidavidm
Copy link
Member Author

Hmm, that's an odd failure. I guess we need to explicitly install protoc somewhere.

@lidavidm
Copy link
Member Author

Or rather, explicitly install a version newer than 3.12 (in Ubuntu 22.04)

@lidavidm lidavidm force-pushed the minor-nightly-docker branch from 683e84f to 9922855 Compare April 23, 2025 07:08
@lidavidm
Copy link
Member Author

Ok, this is finally green...

Copy link
Member

@kou kou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
@lidavidm lidavidm merged commit a4f86c9 into apache:main Apr 24, 2025
76 of 77 checks passed
@lidavidm lidavidm deleted the minor-nightly-docker branch April 24, 2025 02:41
colin-rogers-dbt pushed a commit to dbt-labs/arrow-adbc that referenced this pull request Jun 10, 2025
We've only really tested Conda so far.  Validate non-Conda builds too.

This only tests Ubuntu/APT but eventually we should also test
Debian/APT, macOS/Homebrew, Fedora/RPM, and AlmaLinux/RPM.

---------

Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Co-authored-by: Dewey Dunnington <dewey@dunnington.ca>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants