# 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) }}