# 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 %} {{ macros.github_header() }} jobs: package: name: Package runs-on: ubuntu-20.04 steps: {{ macros.github_checkout_arrow()|indent }} {{ macros.github_login_dockerhub()|indent }} - name: Set up Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.0' - name: Free Up Disk Space shell: bash run: arrow/ci/scripts/util_cleanup.sh - name: Cache ccache uses: actions/cache@v2 with: path: arrow/dev/tasks/linux-packages/apache-arrow/{{ task_namespace }}/build/{{ target }}/ccache key: linux-{{ task_namespace }}-ccache-{{ target }}-{{ "${{ hashFiles('arrow/cpp/**') }}" }} restore-keys: linux-{{ task_namespace }}-ccache-{{ target }}- - name: Build run: | set -e pushd arrow/dev/tasks/linux-packages rake version:update rake docker:pull || : rake --trace {{ task_namespace }}:build BUILD_DIR=build sudo rm -rf */*/build popd env: APT_TARGETS: {{ target }} ARROW_VERSION: {{ arrow.version }} REPO: {{ '${{ secrets.REPO }}' }} YUM_TARGETS: {{ target }} - uses: actions/upload-artifact@v2 with: name: packages path: packages/*/{{ task_namespace }}/repositories/ - name: Docker Push continue-on-error: true shell: bash run: | pushd arrow/dev/tasks/linux-packages rake docker:push popd env: APT_TARGETS: {{ target }} REPO: {{ '${{ secrets.REPO }}' }} YUM_TARGETS: {{ target }} - name: Set up test run: | set -e sudo apt update # We can install createrepo_c by package with Ubuntu 22.04. # createrepo_c \ sudo apt install -y \ apt-utils \ devscripts \ gpg \ rpm 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) echo "GPG_KEY_ID=${GPG_KEY_ID}" >> ${GITHUB_ENV} gpg --export --armor test@example.com > arrow/dev/tasks/linux-packages/KEYS # We can install createrepo_c by package with Ubuntu 22.04. # This is workaround: - name: Install createrepo_c run: | sudo apt install -y \ 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 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 - name: Test run: | set -e pushd arrow/dev/tasks/linux-packages rake --trace {{ task_namespace }}:test rm -rf {{ task_namespace }}/repositories popd env: APT_TARGETS: {{ target }} ARROW_VERSION: {{ arrow.version }} YUM_TARGETS: {{ target }} {% set patterns = upload_extensions | format_all("arrow/dev/tasks/linux-packages/**/*{}") %} {{ macros.github_upload_releases(patterns)|indent }}