Skip to content

Commit

Permalink
GH-6: Add Linux test CI
Browse files Browse the repository at this point in the history
Fixes #6.
  • Loading branch information
lidavidm committed Nov 27, 2024
1 parent 4ed7c73 commit 7e4c35b
Show file tree
Hide file tree
Showing 25 changed files with 4,653 additions and 20 deletions.
52 changes: 52 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 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.

# All of the following environment variables are required to set default values
# for the parameters in docker-compose.yml.

# empty prefix means that the docker-compose configuration will use named
# volumes which potentially improves the performance on docker for macos and
# docker for windows, it also prevents the contamination of the source
# directory
# a non-empty prefix means that directories from the host are bind-mounted
# into the container, it should be set to ".docker/" on github actions to keep
# the cache plugin functional
DOCKER_VOLUME_PREFIX=

# turn on inline build cache, this is a docker buildx feature documented
# at https://github.com/docker/buildx#--cache-tonametypetypekeyvalue
BUILDKIT_INLINE_CACHE=1
COMPOSE_DOCKER_CLI_BUILD=1
DOCKER_BUILDKIT=1

# different architecture notations
ARCH=amd64
ARCH_ALIAS=x86_64
ARCH_SHORT=amd64

# Default repository to pull and push images from
REPO=apache/arrow-dev

# The setup attempts to generate coredumps by default, in order to disable the
# coredump generation set it to 0
ULIMIT_CORE=-1

# Default versions for platforms

# Default versions for various dependencies
JDK=11
MAVEN=3.9.6
73 changes: 73 additions & 0 deletions .github/workflows/java.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# 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: Test

on:
push:
branches:
- '**'
- '!dependabot/**'
tags:
- '**'
pull_request:

concurrency:
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true

permissions:
contents: read

env:
DOCKER_VOLUME_PREFIX: ".docker/"

jobs:
ubuntu:
name: AMD64 Ubuntu 22.04 JDK ${{ matrix.jdk }} Maven ${{ matrix.maven }}
runs-on: ubuntu-latest
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
jdk: [11, 17, 21, 22]
maven: [3.9.6]
image: [java]
env:
JDK: ${{ matrix.jdk }}
MAVEN: ${{ matrix.maven }}
steps:
- name: Checkout Arrow
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
with:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
with:
path: .docker
key: maven-${{ hashFiles('java/**') }}
restore-keys: maven-
- name: Execute Docker Build
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
run: |
docker compose run \
-e CI=true \
-e "DEVELOCITY_ACCESS_KEY=$DEVELOCITY_ACCESS_KEY" \
${{ matrix.image }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ arrow-git.properties
cmake_install.cmake
install_manifest.txt
target/
/.mvn/.develocity/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "testing"]
path = testing
url = [email protected]:apache/arrow-testing
52 changes: 52 additions & 0 deletions arrow-format/File.fbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// 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.

include "Schema.fbs";

namespace org.apache.arrow.flatbuf;

/// ----------------------------------------------------------------------
/// Arrow File metadata
///

table Footer {
version: org.apache.arrow.flatbuf.MetadataVersion;

schema: org.apache.arrow.flatbuf.Schema;

dictionaries: [ Block ];

recordBatches: [ Block ];

/// User-defined metadata
custom_metadata: [ KeyValue ];
}

struct Block {

/// Index to the start of the RecordBlock (note this is past the Message header)
offset: long;

/// Length of the metadata
metaDataLength: int;

/// Length of the data (this is aligned so there can be a gap between this and
/// the metadata).
bodyLength: long;
}

root_type Footer;
Loading

0 comments on commit 7e4c35b

Please sign in to comment.