Skip to content

Commit ba79a48

Browse files
authored
GH-45307: [CI] Use GitHub hosted arm runner (#45308)
### Rationale for this change GitHub hosted arm runner is available: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ ### What changes are included in this PR? Use `ubuntu-24.04-arm` instead of self-hosted runner. ### Are these changes tested? Yes. ### Are there any user-facing changes? No. * GitHub Issue: #45307 Authored-by: Sutou Kouhei <[email protected]> Signed-off-by: Raúl Cumplido <[email protected]>
1 parent 1fcc892 commit ba79a48

File tree

4 files changed

+29
-89
lines changed

4 files changed

+29
-89
lines changed

.github/workflows/cpp.yml

+23-51
Original file line numberDiff line numberDiff line change
@@ -69,65 +69,37 @@ env:
6969
DOCKER_VOLUME_PREFIX: ".docker/"
7070

7171
jobs:
72-
docker-targets:
73-
name: Docker targets
74-
runs-on: ubuntu-latest
75-
outputs:
76-
targets: ${{ steps.detect-targets.outputs.targets }}
77-
steps:
78-
- name: Detect targets
79-
id: detect-targets
80-
run: |
81-
echo "targets<<JSON" >> "$GITHUB_OUTPUT"
82-
echo "[" >> "$GITHUB_OUTPUT"
83-
cat <<JSON >> "$GITHUB_OUTPUT"
84-
{
85-
"arch": "amd64",
86-
"clang-tools": "14",
87-
"image": "conda-cpp",
88-
"llvm": "14",
89-
"runs-on": "ubuntu-latest",
90-
"simd-level": "AVX2",
91-
"title": "AMD64 Conda C++ AVX2",
92-
"ubuntu": "22.04"
93-
},
94-
{
95-
"arch": "amd64",
96-
"clang-tools": "14",
97-
"image": "ubuntu-cpp-sanitizer",
98-
"llvm": "14",
99-
"runs-on": "ubuntu-latest",
100-
"title": "AMD64 Ubuntu 22.04 C++ ASAN UBSAN",
101-
"ubuntu": "22.04"
102-
}
103-
JSON
104-
if [ "$GITHUB_REPOSITORY_OWNER" = "apache" ]; then
105-
echo "," >> "$GITHUB_OUTPUT"
106-
cat <<JSON >> "$GITHUB_OUTPUT"
107-
{
108-
"arch": "arm64v8",
109-
"clang-tools": "10",
110-
"image": "ubuntu-cpp",
111-
"llvm": "10",
112-
"runs-on": ["self-hosted", "arm", "linux"],
113-
"title": "ARM64 Ubuntu 20.04 C++",
114-
"ubuntu": "20.04"
115-
}
116-
JSON
117-
fi
118-
echo "]" >> "$GITHUB_OUTPUT"
119-
echo "JSON" >> "$GITHUB_OUTPUT"
120-
12172
docker:
12273
name: ${{ matrix.title }}
123-
needs: docker-targets
12474
runs-on: ${{ matrix.runs-on }}
12575
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
12676
timeout-minutes: 75
12777
strategy:
12878
fail-fast: false
12979
matrix:
130-
include: ${{ fromJson(needs.docker-targets.outputs.targets) }}
80+
include:
81+
- arch: amd64
82+
clang-tools: 14
83+
image: conda-cpp
84+
llvm: 14
85+
runs-on: ubuntu-latest
86+
simd-level: AVX2
87+
title: AMD64 Conda C++ AVX2
88+
ubuntu: 22.04
89+
- arch: amd64
90+
clang-tools: 14
91+
image: ubuntu-cpp-sanitizer
92+
llvm: 14
93+
runs-on: ubuntu-latest
94+
title: AMD64 Ubuntu 22.04 C++ ASAN UBSAN
95+
ubuntu: 22.04
96+
- arch: arm64v8
97+
clang-tools: 10
98+
image: ubuntu-cpp
99+
llvm: 10
100+
runs-on: ubuntu-24.04-arm
101+
title: ARM64 Ubuntu 20.04 C++
102+
ubuntu: 20.04
131103
env:
132104
ARCH: ${{ matrix.arch }}
133105
ARROW_SIMD_LEVEL: ${{ matrix.simd-level }}

dev/tasks/linux-packages/github.linux.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
package:
2424
name: Package
2525
{% if architecture == "amd64" %}
26-
runs-on: ubuntu-22.04
26+
runs-on: ubuntu-latest
2727
{% else %}
28-
runs-on: ["self-hosted", "Linux", "arm64"]
28+
runs-on: ubuntu-24.04-arm
2929
{% endif %}
3030
env:
3131
ARCHITECTURE: {{ architecture }}

dev/tasks/macros.jinja

+3-35
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,11 @@ env:
5757
{% endmacro %}
5858

5959
{%- macro github_install_archery() -%}
60-
- name: Set up Python by actions/setup-python
61-
if: |
62-
!(runner.os == 'Linux' && runner.arch != 'X64')
60+
- name: Set up Python
6361
uses: actions/setup-python@v4
6462
with:
6563
cache: 'pip'
6664
python-version: 3.12
67-
- name: Set up Python by apt
68-
if: runner.os == 'Linux' && runner.arch != 'X64'
69-
run: |
70-
sudo apt update
71-
sudo apt-get install -y python3-pip
72-
pip install -U pip
73-
echo "$HOME/.local/bin" >>"$GITHUB_PATH"
7465
- name: Install Archery
7566
shell: bash
7667
run: pip install -e arrow/dev/archery[all]
@@ -85,21 +76,10 @@ env:
8576
{% endmacro %}
8677

8778
{%- macro github_upload_releases(pattern) -%}
88-
- name: Set up Python by actions/setup-python
89-
if: |
90-
!(runner.os == 'Linux' && runner.arch != 'X64')
79+
- name: Set up Python
9180
uses: actions/setup-python@v4
9281
with:
9382
python-version: 3.12
94-
- name: Set up Python by apt
95-
if: runner.os == 'Linux' && runner.arch != 'X64'
96-
run: |
97-
sudo apt update
98-
sudo apt install -y \
99-
libgit2-dev \
100-
libpython3-dev \
101-
python3-pip
102-
sudo python3 -m pip install --upgrade pip
10383
- name: Checkout Crossbow
10484
uses: actions/checkout@v4
10585
with:
@@ -145,23 +125,11 @@ env:
145125

146126
{%- macro github_upload_gemfury(pattern) -%}
147127
{%- if arrow.is_default_branch() -%}
148-
- name: Set up Ruby by apt
149-
if: runner.os == 'Linux' && runner.arch != 'X64'
150-
run: |
151-
sudo apt update
152-
sudo apt install -y ruby-full
153-
- name: Set up Ruby by GitHub Actions
154-
if: runner.arch == 'X64' && runner.os != 'macOS'
128+
- name: Set up Ruby
155129
uses: ruby/setup-ruby@v1
156130
with:
157131
ruby-version: "ruby"
158-
- name: Install gemfury client on ARM self-hosted
159-
if: runner.arch != 'X64'
160-
run: |
161-
gem install --user-install gemfury
162-
ruby -r rubygems -e 'puts("#{Gem.user_dir}/bin")' >> $GITHUB_PATH
163132
- name: Install gemfury client
164-
if: runner.arch == 'X64'
165133
run: |
166134
gem install gemfury
167135
- name: Upload package to Gemfury

dev/tasks/python-wheels/github.linux.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
{% if arch == "amd64" %}
2929
runs-on: ubuntu-latest
3030
{% else %}
31-
runs-on: ["self-hosted", "Linux", "arm64"]
31+
runs-on: ubuntu-24.04-arm
3232
{% endif %}
3333
env:
3434
# archery uses these environment variables

0 commit comments

Comments
 (0)