# 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: Go on: push: paths: - '.github/workflows/go.yml' - 'ci/docker/*_go.dockerfile' - 'ci/scripts/go_*' - 'go/**' pull_request: paths: - '.github/workflows/go.yml' - 'ci/docker/*_go.dockerfile' - 'ci/docker/**' - 'ci/scripts/go_*' - 'go/**' concurrency: group: ${{ github.repository }}-${{ github.ref }}-${{ github.workflow }} cancel-in-progress: true env: ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }} ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }} jobs: docker: name: AMD64 Debian 11 Go ${{ matrix.go }} runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 15 strategy: fail-fast: false matrix: go: [1.15] env: GO: ${{ matrix.go }} steps: - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags run: ci/scripts/util_checkout.sh - name: Free Up Disk Space run: ci/scripts/util_cleanup.sh - name: Setup Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Setup Archery run: pip install -e dev/archery[docker] - name: Execute Docker Build run: archery docker run debian-go - name: Docker Push if: success() && github.event_name == 'push' && github.repository == 'apache/arrow' continue-on-error: true run: archery docker push debian-go docker_cgo: name: AMD64 Debian 11 GO ${{ matrix.go }} - CGO runs-on: ubuntu-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 15 strategy: fail-fast: false matrix: go: [1.15] env: GO: ${{ matrix.go }} steps: - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags run: ci/scripts/util_checkout.sh - name: Free Up Disk Space run: ci/scripts/util_cleanup.sh - name: Setup Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Setup Archery run: pip install -e dev/archery[docker] - name: Execute Docker Build run: archery docker run debian-go-cgo - name: Docker Push if: success() && github.event_name == 'push' && github.repository == 'apache/arrow' continue-on-error: true run: archery docker push debian-go-cgo docker_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 strategy: fail-fast: false matrix: go: [1.15] env: GO: ${{ matrix.go }} steps: - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags run: ci/scripts/util_checkout.sh - name: Free Up Disk Space run: ci/scripts/util_cleanup.sh - name: Setup Python uses: actions/setup-python@v1 with: python-version: 3.8 - name: Setup Archery run: pip install -e dev/archery[docker] - name: Execute Docker Build run: archery docker run debian-go-cgo-python - name: Docker Push if: success() && github.event_name == 'push' && github.repository == 'apache/arrow' continue-on-error: true run: archery docker push debian-go-cgo-python windows: name: AMD64 Windows 2019 Go ${{ matrix.go }} runs-on: windows-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 15 strategy: fail-fast: false matrix: go: [1.15] steps: - name: Install go uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags shell: bash run: ci/scripts/util_checkout.sh - name: Build shell: bash run: ci/scripts/go_build.sh . - name: Test shell: bash run: ci/scripts/go_test.sh . macos: name: AMD64 MacOS 10.15 Go ${{ matrix.go }} runs-on: macos-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 15 strategy: fail-fast: false matrix: go: [1.15] steps: - name: Install go uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags shell: bash run: ci/scripts/util_checkout.sh - name: Build shell: bash run: ci/scripts/go_build.sh . - name: Test shell: bash run: ci/scripts/go_test.sh . macos-cgo: name: AMD64 MacOS 10.15 Go ${{ matrix.go }} - CGO runs-on: macos-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 60 strategy: fail-fast: false matrix: go: [1.15] env: ARROW_GO_TESTCGO: "1" steps: - name: Install go uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags shell: bash run: ci/scripts/util_checkout.sh - name: Brew Install Arrow shell: bash run: brew install apache-arrow - name: Build shell: bash run: ci/scripts/go_build.sh . - name: Test shell: bash run: ci/scripts/go_test.sh . windows-mingw: name: AMD64 Windows MinGW ${{ matrix.mingw-n-bits }} CGO runs-on: windows-latest if: ${{ !contains(github.event.pull_request.title, 'WIP') }} timeout-minutes: 60 strategy: fail-fast: false matrix: go: [1.15] mingw-n-bits: #- 32 runtime handling for CGO needs 64-bit currently - 64 env: ARROW_GO_TESTCGO: "1" steps: - name: Disable Crash Dialogs run: | reg add ` "HKCU\SOFTWARE\Microsoft\Windows\Windows Error Reporting" ` /v DontShowUI ` /t REG_DWORD ` /d 1 ` /f - name: Install go uses: actions/setup-go@v1 with: go-version: ${{ matrix.go }} - name: Checkout Arrow uses: actions/checkout@v2 with: fetch-depth: 0 - name: Fetch Submodules and Tags shell: bash run: ci/scripts/util_checkout.sh - uses: msys2/setup-msys2@v2 with: msystem: MINGW${{ matrix.mingw-n-bits }} update: true - name: Setup MSYS2 shell: msys2 {0} run: | ci/scripts/msys2_setup.sh cgo - name: Update CGO Env vars shell: msys2 {0} run: | echo "CGO_CPPFLAGS=-I$(cygpath --windows ${MINGW_PREFIX}/include)" >> $GITHUB_ENV echo "CGO_LDFLAGS=-g -O2 -L$(cygpath --windows ${MINGW_PREFIX}/lib) -L$(cygpath --windows ${MINGW_PREFIX}/bin)" >> $GITHUB_ENV echo "$(cygpath --windows ${MINGW_PREFIX}/bin)" >> $GITHUB_PATH - name: Build shell: bash run: ci/scripts/go_build.sh . - name: Test shell: bash run: ci/scripts/go_test.sh .