summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
parentInitial commit. (diff)
downloadceph-upstream/18.2.2.tar.xz
ceph-upstream/18.2.2.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml')
-rw-r--r--src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml b/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
new file mode 100644
index 000000000..3703f4c46
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/travis.linux.arm64.yml
@@ -0,0 +1,155 @@
+# 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.
+
+{% import 'macros.jinja' as macros with context %}
+
+arch: arm64-graviton2
+virt: vm
+os: linux
+dist: focal
+group: edge
+language: minimal
+
+addons:
+ apt:
+ packages:
+ - apt-utils
+ # We need Ubuntu 20.10 or later
+ # - createrepo_c
+ - devscripts
+ - gpg
+ - libgit2-dev
+ - python3-pip
+ - rake
+ - rpm
+
+ # https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1916485
+ # We need to use runc 1.0.0~rc93 or later from focal-updated.
+ - runc
+
+ # To build createrepo_c from source.
+ # We can remove them when we can install createrepo_c package
+ - cmake
+ - libbz2-dev
+ - libcurl4-openssl-dev
+ - libglib2.0-dev
+ - liblzma-dev
+ - libmagic-dev
+ - librpm-dev
+ - libsqlite3-dev
+ - libssl-dev
+ - libxml2-dev
+ - libzstd-dev
+ - pkg-config
+ - zlib1g-dev
+ update: true
+
+services:
+ - docker
+
+# don't build twice
+if: tag IS blank
+
+env:
+ global:
+ - APT_TARGETS={{ target }}
+ - ARROW_VERSION={{ arrow.version }}
+ - BUILD_REF={{ arrow.head }}
+ - TRAVIS_TAG={{ task.tag }}
+ - YUM_TARGETS={{ target }}
+
+before_script:
+ - set -e
+ {{ macros.travis_checkout_arrow() }}
+ {{ macros.travis_docker_login() }}
+
+ # Build createrepo_c from source.
+ # We can remove them when we can install createrepo_c package
+ - git clone --depth 1 https://github.com/rpm-software-management/createrepo_c.git
+ - pushd createrepo_c
+ - |
+ /usr/bin/cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_BASHCOMP=OFF \
+ -DENABLE_DRPM=OFF \
+ -DENABLE_PYTHON=OFF \
+ -DWITH_LIBMODULEMD=OFF \
+ -DWITH_ZCHUNK=OFF \
+ .
+ - make -j$(nproc)
+ - sudo make install
+ - popd
+ - rm -rf createrepo_c
+
+script:
+ # Build packages
+ - pushd arrow/dev/tasks/linux-packages
+ - rake version:update
+ - |
+ rake docker:pull || :
+ - pushd apache-arrow-apt-source/apt
+ - |
+ for target in debian-* ubuntu-*; do
+ cp -a ${target} ${target}-arm64
+ done
+ - popd
+ - pushd apache-arrow-release/yum
+ - |
+ for target in almalinux-* centos-*; do
+ cp -a ${target} ${target}-aarch64
+ done
+ - popd
+ - |
+ rake \
+ --trace \
+ {{ task_namespace }}:build \
+ BUILD_DIR=build \
+ DEB_BUILD_OPTIONS=parallel=2 \
+ RPM_BUILD_NCPUS=2
+ - sudo rm -rf */*/build
+ - popd
+ # Push Docker image
+ - pushd arrow/dev/tasks/linux-packages
+ - |
+ docker login -u "${DOCKERHUB_USER}" \
+ -p "${DOCKERHUB_TOKEN}" || :
+ - |
+ rake docker:push || :
+ - popd
+ # Test built packages
+ - sudo gem install apt-dists-merge
+ - |
+ (echo "Key-Type: RSA"; \
+ echo "Key-Length: 4096"; \
+ echo "Name-Real: Test"; \
+ echo "Name-Email: test@example.com"; \
+ echo "%no-protection") | \
+ gpg --full-generate-key --batch
+ - |
+ GPG_KEY_ID=$(gpg --list-keys --with-colon test@example.com | grep fpr | cut -d: -f10)
+ - gpg --export --armor test@example.com > arrow/dev/tasks/linux-packages/KEYS
+ - pushd arrow/dev/tasks/linux-packages
+ - |
+ rake --trace {{ task_namespace }}:test \
+ CREATEREPO=createrepo_c \
+ GPG_KEY_ID=${GPG_KEY_ID}
+ - rm -rf {{ task_namespace }}/repositories
+ - popd
+
+after_success:
+ {% set patterns = upload_extensions | format_all("arrow/dev/tasks/linux-packages/**/*{}") %}
+ {{ macros.travis_upload_releases(patterns) }}