Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
5a5d4df
GH-47582: [CI][Packaging] Move linux-packaging tasks to apache/arrow …
raulcd Sep 17, 2025
22aef1b
Add Release steps except upload
raulcd Sep 19, 2025
aed742e
Move back report-ci to run only on scheduled and send report for apac…
raulcd Sep 19, 2025
7ab42ac
Temporarily add all the almalinux, amazon linux and centos versions t…
raulcd Sep 19, 2025
91f2e89
Remove Centos 7 arm64, remove check for files requiring amd64 (as the…
raulcd Sep 19, 2025
abd9f3a
Apply fixes for arm64
raulcd Sep 19, 2025
8313250
Leave only almalinux amd64 and arm64
raulcd Sep 19, 2025
b36ded6
Use correct folder for arm64 prepare
raulcd Sep 19, 2025
6eefcd4
Fix target for aarch64
raulcd Sep 19, 2025
0d4f81f
Several review comments and refactors
raulcd Sep 19, 2025
a39e38c
Add check-labels testing
raulcd Sep 19, 2025
e4768ac
Fix labels output
raulcd Sep 19, 2025
b493a27
Add some debugging to generate tarball
raulcd Sep 19, 2025
eb16359
Fix matrix variable to use
raulcd Sep 19, 2025
94f6b27
Change matrix.id for {{ matrix.target }}-{{ matrix.architecture }} fo…
raulcd Sep 19, 2025
636f9ea
untar on artifacts-downloaded/{{ matrix.target }}-{{ matrix.architect…
raulcd Sep 22, 2025
59aa6a7
Reduce matrix definition by using id + set up environment variables
raulcd Sep 22, 2025
a238b5b
Add some debian based packages
raulcd Sep 22, 2025
c84d4a5
Fix architexture to use env variable
raulcd Sep 22, 2025
6529a7f
Define YUM_TARGETS and APT_TARGETS after appending architecture if ne…
raulcd Sep 22, 2025
6dc85fd
Test all linux-packages together
raulcd Sep 22, 2025
b25859a
Only download the specific artifact instead of downloading all of them
raulcd Sep 22, 2025
1bf4bc7
How does the artifact change when using a specific name?
raulcd Sep 22, 2025
bd76b68
Untar on dowload script
raulcd Sep 23, 2025
df7d3cb
Simplify apt:rc:copy and yum:rc:copy to maintain repo folder structur…
raulcd Sep 23, 2025
f922af1
Remove old Linux Package tasks
raulcd Sep 23, 2025
c803e8e
Uncomment the rest of linux package tasks
raulcd Sep 23, 2025
168c696
Remove missing tasks
raulcd Sep 23, 2025
849bbba
Simplify .tar.gz folder structure more to be able to simplify even mo…
raulcd Sep 23, 2025
0d8110b
Fix verify-yum.sh and verify-apt.sh to remove apt/repositories and yu…
raulcd Sep 23, 2025
14541a6
Try to fix after understanding the code a bit better :)
raulcd Sep 23, 2025
5b6d51c
Revert "Try to fix after understanding the code a bit better :)"
raulcd Sep 25, 2025
2850339
Revert "Fix verify-yum.sh and verify-apt.sh to remove apt/repositorie…
raulcd Sep 25, 2025
36ea65b
Revert "Simplify .tar.gz folder structure more to be able to simplify…
raulcd Sep 25, 2025
6c454d0
Some fixes to ruby as per code review
raulcd Sep 25, 2025
70bf6c6
Apply suggestion from @kou
raulcd Sep 25, 2025
f65170a
Fix indent
kou Oct 2, 2025
f0088d4
Simplify
kou Oct 2, 2025
3e27192
Revert needless changes
kou Oct 2, 2025
840607e
Remove needless changes
kou Oct 2, 2025
48edc55
Not use SRPM
kou Oct 2, 2025
7673c04
Need free space
kou Oct 2, 2025
a84b42a
Add support for arm64 image
kou Oct 2, 2025
bc1233d
Debug
kou Oct 2, 2025
b23f06f
Add support for arm64 image
kou Oct 2, 2025
738605c
Fix distribution and version split
kou Oct 2, 2025
d30e535
Fix package version
kou Oct 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/check_labels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# 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: Check Labels Reusable

on:
workflow_call:
inputs:
parent-workflow:
description: "The parent workflow filename (without .yml)"
required: true
type: string
outputs:
ci-extra-labels:
description: "The extra CI labels"
value: ${{ jobs.check-labels.outputs.ci-extra-labels }}
force:
description: "Whether to force running the jobs"
value: ${{ jobs.check-labels.outputs.force }}

jobs:
check-labels:
name: Check labels
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
ci-extra-labels: ${{ steps.check.outputs.ci-extra-labels }}
force: ${{ steps.check.outputs.force }}
steps:
- name: Checkout Arrow
if: github.event_name == 'pull_request'
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Check
id: check
env:
GH_TOKEN: ${{ github.token }}
run: |
set -ex
case "${GITHUB_EVENT_NAME}" in
push|schedule|workflow_dispatch)
echo "force=true" >> "${GITHUB_OUTPUT}"
;;
pull_request)
{
echo "ci-extra-labels<<LABELS"
gh pr view ${{ github.event.number }} \
--jq '[.labels[].name | select(startswith("CI: Extra"))]' \
--json labels \
--repo ${GITHUB_REPOSITORY}
echo "LABELS"
} >> "${GITHUB_OUTPUT}"
git fetch origin ${GITHUB_BASE_REF}
git diff --stat origin/${GITHUB_BASE_REF}..
if git diff --stat origin/${GITHUB_BASE_REF}.. | \
grep \
--fixed-strings ".github/workflows/${{ inputs.parent-workflow }}.yml" \
--quiet; then
echo "force=true" >> "${GITHUB_OUTPUT}"
fi
;;
esac
113 changes: 18 additions & 95 deletions .github/workflows/cpp_extra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ on:
- '!dependabot/**'
paths:
- '.dockerignore'
- '.github/workflows/check_labels.yml'
- '.github/workflows/cpp_extra.yml'
- '.github/workflows/report_ci.yml'
- 'ci/conda_env_*'
- 'ci/docker/**'
- 'ci/scripts/ccache_setup.sh'
Expand All @@ -43,7 +45,9 @@ on:
pull_request:
paths:
- '.dockerignore'
- '.github/workflows/check_labels.yml'
- '.github/workflows/cpp_extra.yml'
- '.github/workflows/report_ci.yml'
- 'ci/conda_env_*'
- 'ci/docker/**'
- 'ci/scripts/ccache_setup.sh'
Expand Down Expand Up @@ -75,53 +79,19 @@ permissions:

jobs:
check-labels:
name: Check labels
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
ci-extra: ${{ steps.check.outputs.ci-extra }}
steps:
- name: Checkout Arrow
if: github.event_name == 'pull_request'
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Check
id: check
env:
GH_TOKEN: ${{ github.token }}
run: |
case "${GITHUB_EVENT_NAME}" in
push|schedule)
ci_extra=true
;;
pull_request)
n_ci_extra_labels=$(
gh pr view ${{ github.event.number }} \
--jq '.labels[].name | select(. == "CI: Extra")' \
--json labels \
--repo ${GITHUB_REPOSITORY} | wc -l)
if [ "${n_ci_extra_labels}" -eq 1 ]; then
ci_extra=true
else
git fetch origin ${GITHUB_BASE_REF}
if git diff --stat origin/${GITHUB_BASE_REF}.. | \
grep \
--fixed-strings ".github/workflows/cpp_extra.yml" \
--quiet; then
ci_extra=true
else
ci_extra=false
fi
fi
;;
esac

echo "ci-extra=${ci_extra}" >> "${GITHUB_OUTPUT}"
uses: ./.github/workflows/check_labels.yml
secrets: inherit
with:
parent-workflow: cpp_extra

docker:
needs: check-labels
name: ${{ matrix.title }}
runs-on: ${{ matrix.runs-on }}
if: needs.check-labels.outputs.ci-extra == 'true'
if: >-
needs.check-labels.outputs.force == 'true' ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
timeout-minutes: 75
strategy:
fail-fast: false
Expand Down Expand Up @@ -198,7 +168,10 @@ jobs:
needs: check-labels
name: JNI macOS
runs-on: macos-14
if: needs.check-labels.outputs.ci-extra == 'true'
if: >-
needs.check-labels.outputs.force == 'true' ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
timeout-minutes: 45
env:
MACOSX_DEPLOYMENT_TARGET: "14.0"
Expand Down Expand Up @@ -280,58 +253,8 @@ jobs:
../minimal_build.build/arrow-example

report-extra-cpp:
runs-on: ubuntu-latest
needs:
- docker
- jni-macos
# We don't have the job id as part of the context neither the job name.
# The GitHub API exposes numeric id or job name but not the github.job (report-extra-cpp).
# We match github.job to the name so we can pass it via context in order to be ignored on the report.
# The job is still running.
name: ${{ github.job }}
if: github.event_name == 'schedule' && always()
steps:
- name: Checkout Arrow
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: 3
- name: Setup Archery
run: python3 -m pip install -e dev/archery[crossbow]
- name: Prepare common options
run: |
if [ "${GITHUB_REPOSITORY}" = "apache/arrow" ]; then
echo "COMMON_OPTIONS=--send" >> "${GITHUB_ENV}"
else
echo "COMMON_OPTIONS=--dry-run" >> "${GITHUB_ENV}"
fi
- name: Send email
env:
GH_TOKEN: ${{ github.token }}
SMTP_PASSWORD: ${{ secrets.ARROW_SMTP_PASSWORD }}
run: |
archery ci report-email \
--ignore ${{ github.job }} \
--recipient-email '[email protected]' \
--repository ${{ github.repository }} \
--sender-email '[email protected]' \
--sender-name Arrow \
--smtp-port 587 \
--smtp-server 'commit-email.info' \
--smtp-user arrow \
${COMMON_OPTIONS} \
${{ github.run_id }}
- name: Send chat message
if: always()
env:
GH_TOKEN: ${{ github.token }}
CHAT_WEBHOOK: ${{ secrets.ARROW_ZULIP_WEBHOOK }}
run: |
archery ci report-chat \
--ignore ${{ github.job }} \
--repository ${{ github.repository }} \
${COMMON_OPTIONS} \
${{ github.run_id }}
uses: ./.github/workflows/report_ci.yml
secrets: inherit
Loading
Loading