1515# specific language governing permissions and limitations
1616# under the License.
1717
18- # S3-backed tests against MinIO (Linux and macOS only).
19- name : S3 Tests
18+ # AWS-related tests. ICEBERG_S3 (Arrow's bundled AWS SDK) and ICEBERG_SIGV4
19+ # (vcpkg-installed aws-cpp-sdk-core) are tested in separate jobs: linking
20+ # both into one binary causes ODR conflicts on the shared AWS SDK symbols.
21+ name : AWS Tests
2022
2123on :
2224 push :
3941 ICEBERG_HOME : /tmp/iceberg
4042
4143jobs :
42- s3-minio :
44+ aws :
4345 if : ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }}
44- name : S3 (${{ matrix.title }})
46+ name : AWS (${{ matrix.title }})
4547 runs-on : ${{ matrix.runs-on }}
46- timeout-minutes : 35
48+ timeout-minutes : 45
4749 strategy :
4850 fail-fast : false
4951 matrix :
5052 include :
51- - title : AMD64 Ubuntu 24.04
53+ - title : AMD64 Ubuntu 24.04, S3
5254 runs-on : ubuntu-24.04
5355 CC : gcc-14
5456 CXX : g++-14
55- - title : AArch64 macOS 26
57+ s3 : " ON"
58+ sigv4 : " OFF"
59+ - title : AMD64 Ubuntu 24.04, SigV4
60+ runs-on : ubuntu-24.04
61+ CC : gcc-14
62+ CXX : g++-14
63+ s3 : " OFF"
64+ sigv4 : " ON"
65+ - title : AArch64 macOS 26, S3
5666 runs-on : macos-26
67+ s3 : " ON"
68+ sigv4 : " OFF"
5769 env :
5870 ICEBERG_TEST_S3_URI : s3://iceberg-test
5971 AWS_ACCESS_KEY_ID : minio
7082 if : ${{ startsWith(matrix.runs-on, 'ubuntu') }}
7183 shell : bash
7284 run : sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
85+ - name : Cache vcpkg packages
86+ if : ${{ matrix.sigv4 == 'ON' }}
87+ uses : actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
88+ id : vcpkg-cache
89+ with :
90+ path : /usr/local/share/vcpkg/installed
91+ key : vcpkg-x64-linux-aws-sdk-cpp-core-${{ hashFiles('.github/workflows/aws_test.yml') }}
92+ - name : Install AWS SDK via vcpkg
93+ if : ${{ matrix.sigv4 == 'ON' && steps.vcpkg-cache.outputs.cache-hit != 'true' }}
94+ shell : bash
95+ run : vcpkg install aws-sdk-cpp[core]:x64-linux
7396 - name : Set Ubuntu Compilers
7497 if : ${{ startsWith(matrix.runs-on, 'ubuntu') }}
7598 run : |
@@ -82,8 +105,11 @@ jobs:
82105 brew install fmt
83106 echo "CMAKE_PREFIX_PATH=$(brew --prefix fmt):${CMAKE_PREFIX_PATH:-}" >> "${GITHUB_ENV}"
84107 - name : Start MinIO
108+ if : ${{ matrix.s3 == 'ON' }}
85109 shell : bash
86110 run : bash ci/scripts/start_minio.sh
87- - name : Build and test Iceberg with S3
111+ - name : Build and test Iceberg
88112 shell : bash
89- run : ci/scripts/build_iceberg.sh "$(pwd)" OFF OFF ON
113+ env :
114+ CMAKE_TOOLCHAIN_FILE : ${{ matrix.sigv4 == 'ON' && '/usr/local/share/vcpkg/scripts/buildsystems/vcpkg.cmake' || '' }}
115+ run : ci/scripts/build_iceberg.sh "$(pwd)" OFF OFF ${{ matrix.s3 }} ${{ matrix.sigv4 }}
0 commit comments