This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 0582122b41 GH-34543: [CI] Self-hosted ARM workflows improvements 
(#34512)
0582122b41 is described below

commit 0582122b41949790b795c3760ab41f21275f393c
Author: Raúl Cumplido <[email protected]>
AuthorDate: Tue Mar 14 13:49:16 2023 +0100

    GH-34543: [CI] Self-hosted ARM workflows improvements (#34512)
    
    ### Rationale for this change
    
    Fixes some post-merge review comments
    
    ### What changes are included in this PR?
    
    Comments from original: https://github.com/apache/arrow/pull/34482
    
    ### Are these changes tested?
    
    On CI
    
    * Closes: #34543
    
    Authored-by: Raúl Cumplido <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 .github/workflows/cpp.yml | 89 ++++++++++++++-------------------------------
 .github/workflows/go.yml  | 93 +++++++++++++++++++----------------------------
 ci/scripts/go_build.sh    |  7 ----
 3 files changed, 65 insertions(+), 124 deletions(-)

diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml
index ee0ef30f4f..416b2abc36 100644
--- a/.github/workflows/cpp.yml
+++ b/.github/workflows/cpp.yml
@@ -55,22 +55,39 @@ env:
 jobs:
   docker:
     name: ${{ matrix.title }}
-    runs-on: ubuntu-latest
+    runs-on: ${{ matrix.runs-on }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 75
     strategy:
       fail-fast: false
       matrix:
-        image:
-          - conda-cpp
-          - ubuntu-cpp-sanitizer
         include:
-          - image: conda-cpp
+          - arch: amd64
+            clang-tools: "14"
+            image: conda-cpp
+            llvm: "14"
+            runs-on: ubuntu-latest
             title: AMD64 Conda C++
-          - image: ubuntu-cpp-sanitizer
+            ubuntu: "22.04"
+          - arch: amd64
+            clang-tools: "14"
+            image: ubuntu-cpp-sanitizer
+            llvm: "14"
+            runs-on: ubuntu-latest
             title: AMD64 Ubuntu 22.04 C++ ASAN UBSAN
+            ubuntu: "22.04"
+          - arch: arm64v8
+            clang-tools: "10"
+            image: ubuntu-cpp
+            llvm: "10"
+            runs-on: ["self-hosted", "arm", "linux"]
+            title: ARM64 Ubuntu 20.04 C++
+            ubuntu: "20.04"
     env:
-      UBUNTU: "22.04"
+      ARCH: ${{ matrix.arch }}
+      CLANG_TOOLS: ${{ matrix.clang-tools }}
+      LLVM: ${{ matrix.llvm }}
+      UBUNTU: ${{ matrix.ubuntu }}
     steps:
       - name: Checkout Arrow
         uses: actions/checkout@v3
@@ -84,11 +101,10 @@ jobs:
           key: ${{ matrix.image }}-${{ hashFiles('cpp/**') }}
           restore-keys: ${{ matrix.image }}-
       - name: Setup Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: 3.8
+        run: |
+          sudo apt install -y --no-install-recommends python3 python3-pip
       - name: Setup Archery
-        run: pip install -e dev/archery[docker]
+        run: python3 -m pip install -e dev/archery[docker]
       - name: Execute Docker Build
         env:
           ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
@@ -400,54 +416,3 @@ jobs:
         run: |
           PATH="$(cygpath --unix ${PYTHON_BIN_DIR}):${PATH}"
           ci/scripts/cpp_test.sh "$(pwd)" "$(pwd)/build"
-
-  linux-arm:
-    name: ARM64 Ubuntu 20.04 C++
-    runs-on: ["arm", "linux"]
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
-    timeout-minutes: 75
-    env:
-      ARROW_ENABLE_TIMING_TESTS: "OFF"
-      ARCH: arm64v8
-      ARROW_CI_MODULES: "CPP"
-      DOCKER_IMAGE_ID: ubuntu-cpp
-      # ARROW_USE_GLOG=OFF is needed to avoid build error caused by
-      # glog and CMAKE_UNITY_BUILD=ON.
-      DOCKER_RUN_ARGS: >-
-        "
-        -e ARROW_BUILD_STATIC=OFF
-        -e ARROW_ORC=OFF
-        -e ARROW_USE_GLOG=OFF
-        -e CMAKE_UNITY_BUILD=ON
-        "
-      # The LLVM's APT repository doesn't provide arm64 binaries.
-      # We should use LLVM provided by Ubuntu.
-      CLANG_TOOLS: "10"
-      LLVM: "10"
-      UBUNTU: "20.04"
-    steps:
-      - name: Checkout Arrow
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-          submodules: recursive
-      - name: Setup Python
-        run: |
-          sudo apt install -y --no-install-recommends python3 python3-pip
-      - name: Setup Archery
-        run: python3 -m pip install -e dev/archery[docker]
-      - name: Execute Docker Build
-        env:
-          ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-          ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-        run: |
-          sudo sysctl -w kernel.core_pattern="core.%e.%p"
-          ulimit -c unlimited
-          archery docker run ubuntu-cpp
-      - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 
'apache/arrow'
-        env:
-          ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-          ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-        continue-on-error: true
-        run: archery docker push ubuntu-cpp
diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 59c23c2e7b..b0ea7f9397 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -42,20 +42,31 @@ permissions:
 jobs:
 
   docker:
-    name: AMD64 Debian 11 Go ${{ matrix.go }}
-    runs-on: ubuntu-latest
+    name: ${{ matrix.arch-label }} Debian 11 Go ${{ matrix.go }}
+    runs-on: ${{ matrix.runs-on }}
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 60
     strategy:
       fail-fast: false
       matrix:
-        go: [1.17, 1.18]
         include:
-          - go: 1.17
+          - arch-label: AMD64
+            arch: amd64
+            go: 1.17
+            runs-on: ubuntu-latest
             staticcheck: v0.2.2
-          - go: 1.18
+          - arch-label: AMD64
+            arch: amd64
+            go: 1.18
+            runs-on: ubuntu-latest
             staticcheck: v0.3.3
+          - arch-label: ARM64
+            arch: arm64v8
+            go: 1.17
+            staticcheck: v0.2.2
+            runs-on: ["self-hosted", "arm", "linux"]
     env:
+      ARCH: ${{ matrix.arch }}
       GO: ${{ matrix.go }}
       STATICCHECK: ${{ matrix.staticcheck }}
     steps:
@@ -65,44 +76,54 @@ jobs:
           fetch-depth: 0
           submodules: recursive
       - name: Setup Python
-        uses: actions/setup-python@v4
-        with:
-          python-version: '3.10'
+        run: |
+          sudo apt install -y --no-install-recommends python3 python3-pip
       - name: Setup Archery
-        run: pip install -e dev/archery[docker]
+        run: python3 -m pip install -e dev/archery[docker]
       - name: Execute Docker Build
         env:
           ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
           ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
         run: archery docker run debian-go
       - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 
'apache/arrow'
+        if: >-
+          success() &&
+          github.event_name == 'push' &&
+          github.repository == 'apache/arrow'
         env:
           ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
           ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
         continue-on-error: true
         run: archery docker push debian-go
       - name: Install Go ${{ matrix.go }} for Benchmarks
-        if: success() && github.event_name == 'push' && github.repository == 
'apache/arrow'
+        if: >-
+          success() &&
+          matrix.arch == 'amd64' &&
+          github.event_name == 'push' &&
+          github.repository == 'apache/arrow'
         uses: actions/setup-go@v3
         with:
           go-version: ${{ matrix.go }}
           cache: true
           cache-dependency-path: go/go.sum
       - name: Run Benchmarks
-        if: success() && github.event_name == 'push' && github.repository == 
'apache/arrow'
+        if: >-
+          success() &&
+          matrix.arch == 'amd64' &&
+          github.event_name == 'push' &&
+          github.repository == 'apache/arrow'
         env:
           CONBENCH_URL: https://conbench.ursa.dev
           CONBENCH_EMAIL: ${{ secrets.CONBENCH_EMAIL }}
           CONBENCH_PASSWORD: ${{ secrets.CONBENCH_PASS }}
           CONBENCH_REF: ${{ github.ref_name }}
-          CONBENCH_MACHINE_INFO_NAME: amd64-debian-11
+          CONBENCH_MACHINE_INFO_NAME: ${{ matrix.arch }}-debian-11
         run: |
-          pip install 
benchadapt@git+https://github.com/conbench/conbench.git@main#subdirectory=benchadapt/python
-          python ci/scripts/go_bench_adapt.py
+          python3 -m pip install 
benchadapt@git+https://github.com/conbench/conbench.git@main#subdirectory=benchadapt/python
+          python3 ci/scripts/go_bench_adapt.py
 
   docker_cgo:
-    name: AMD64 Debian 11 GO ${{ matrix.go }} - CGO
+    name: AMD64 Debian 11 Go ${{ matrix.go }} - CGO
     runs-on: ubuntu-latest
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 15
@@ -145,7 +166,7 @@ jobs:
 
 
   docker_cgo_python:
-    name: AMD64 Debian 11 GO ${{ matrix.go }} - CGO Python
+    name: AMD64 Debian 11 Go ${{ matrix.go }} - CGO Python
     runs-on: ubuntu-latest
     if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     timeout-minutes: 15
@@ -373,41 +394,3 @@ jobs:
       - name: Test
         shell: bash
         run: ci/scripts/go_test.sh $(pwd)
-
-  linux-arm:
-    name: ARM64 Debian 11 GO ${{ matrix.go }}
-    runs-on: ["self-hosted", "linux"]
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
-    timeout-minutes: 60
-    strategy:
-      matrix:
-        go: [1.17]
-    env:
-      GO: ${{ matrix.go }}
-      ARROW_ENABLE_TIMING_TESTS: "OFF"
-      ARCH: arm64v8
-      ARROW_CI_MODULES: "GO"
-      DOCKER_IMAGE_ID: debian-go
-    steps:
-      - name: Checkout Arrow
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-          submodules: recursive
-      - name: Setup Python
-        run: |
-          sudo apt install -y --no-install-recommends python3 python3-pip
-      - name: Setup Archery
-        run: python3 -m pip install -e dev/archery[docker]
-      - name: Execute Docker Build
-        env:
-          ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-          ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-        run: archery docker run debian-go
-      - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 
'apache/arrow'
-        env:
-          ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-          ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-        continue-on-error: true
-        run: archery docker push debian-go
diff --git a/ci/scripts/go_build.sh b/ci/scripts/go_build.sh
index c113bbd320..3c8cc0f4ee 100755
--- a/ci/scripts/go_build.sh
+++ b/ci/scripts/go_build.sh
@@ -20,13 +20,6 @@
 set -ex
 
 source_dir=${1}/go
-ARCH=`uname -m`
-
-# Arm64 CI is triggered by travis and run in arm64v8/golang:1.17-bullseye
-if [ "aarch64" == "$ARCH" ]; then
-# Install `staticcheck`
-  GO111MODULE=on go install honnef.co/go/tools/cmd/[email protected]
-fi
 
 pushd ${source_dir}/arrow
 

Reply via email to