Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the manylinux CI job to GitHub Actions. #4491

Merged
merged 11 commits into from
Nov 16, 2023
30 changes: 29 additions & 1 deletion .github/workflows/ci-linux_mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
type: string
bootstrap_args:
default: ''
required: true
required: false
type: string
matrix_image:
default: ''
Expand All @@ -28,6 +28,14 @@ on:
default: 'g++'
required: false
type: string
matrix_compiler_cflags:
default: ''
required: false
type: string
matrix_compiler_cxxflags:
default: ''
required: false
type: string
timeout:
default: 90
description: 'Job timeout (minutes)'
Expand All @@ -38,13 +46,22 @@ on:
description: 'Enable Address Sanitizer'
required: false
type: boolean
manylinux:
default: false
description: 'Enable manylinux builds'
required: false
type: boolean

env:
BACKWARDS_COMPATIBILITY_ARRAYS: OFF
TILEDB_CI_BACKEND: ${{ inputs.ci_backend }}
TILEDB_CI_OS: runner.os
# Installing Python does not work on manylinux.
TILEDB_ARROW_TESTS: ${{ !inputs.manylinux && 'ON' || 'OFF' }}
CXX: ${{ inputs.matrix_compiler_cxx }}
CC: ${{ inputs.matrix_compiler_cc }}
CFLAGS: ${{ inputs.matrix_compiler_cflags }}
CXXFLAGS: ${{ inputs.matrix_compiler_cxxflags }}
bootstrap_args: "--enable-ccache ${{ inputs.bootstrap_args }} ${{ inputs.asan && '--enable-sanitizer=address' || '' }}"
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite'
SCCACHE_GHA_ENABLED: "true"
Expand All @@ -56,6 +73,9 @@ jobs:
os:
- ${{ inputs.matrix_image }}
runs-on: ${{matrix.os}}
#value: quay.io/pypa/manylinux2014_x86_64:2022-11-06-7be974c
# modified from above tag to add linux-headers
container: ${{inputs.manylinux && 'ghcr.io/ihnorton/tiledb-manylinux2014_x86_64:2023-04-02' || ''}}
teo-tsirpanis marked this conversation as resolved.
Show resolved Hide resolved

if: ${{ startsWith(github.ref , 'refs/tags') != true && startsWith(github.ref , 'build-') != true }}
timeout-minutes: ${{ inputs.timeout || 90 }}
Expand Down Expand Up @@ -85,14 +105,22 @@ jobs:
run: ./scripts/ci/posix/prelim.sh
shell: bash

- name: Install manylinux prerequisites
if: inputs.manylinux
run: |
set -e pipefail
yum install -y redhat-lsb-core

# Need this for virtualenv and arrow tests if enabled
- name: 'Install Python'
uses: actions/setup-python@v4
if: ${{ !inputs.manylinux }}
with:
python-version: '3.8'
cache: 'pip'

- name: 'Set up Python dependencies'
if: ${{ !inputs.manylinux }}
run: |
set -e pipefail
python -m pip install --upgrade pip virtualenv
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/full-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,17 @@ jobs:
timeout: 120
bootstrap_args: '--enable-azure'

ci_manylinux:
uses: ./.github/workflows/ci-linux_mac.yml
with:
ci_backend: MANYLINUX
matrix_image: ubuntu-20.04
matrix_compiler_cflags: "-lrt"
matrix_compiler_cxxflags: "-lrt"
timeout: 120
bootstrap_args: '--enable-serialization'
manylinux: true

ci_msvc:
uses: ./.github/workflows/build-windows.yml

Expand Down Expand Up @@ -145,6 +156,7 @@ jobs:
ci8,
ci9,
ci10,
ci_manylinux,
ci_msvc,
backward_compatibility,
standalone
Expand Down
30 changes: 0 additions & 30 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,6 @@ trigger:
- release-*
- refs/tags/*
- build-
pr:
branches:
include:
- '*' # must quote since "*" is a YAML reserved character; we want a string
paths:
exclude:
- '.github/workflows/quarto-render.yml'
- '_quarto.yml'
- 'quarto-materials/*'
- '**/.md'
- 'doc/source/conf.py'

variables:
- name: MANYLINUX_IMAGE
Expand All @@ -24,25 +13,6 @@ variables:
value: ghcr.io/ihnorton/tiledb-manylinux2014_x86_64:2023-04-02

stages:
- stage: CI
condition: and(not(startsWith(variables['Build.SourceBranch'], 'refs/tags')), not(startsWith(variables['Build.SourceBranchName'], 'build-')))
variables:
BACKWARDS_COMPATIBILITY_ARRAYS: OFF
jobs:
- job: linux_manylinux
pool: { vmImage: $(imageName) }
container: ${{ variables.MANYLINUX_IMAGE }}
variables:
imageName: 'ubuntu-20.04'
TILEDB_SERIALIZATION: ON
CXX: g++
CC: gcc
CXXFLAGS: "-lrt"
CFLAGS: "-lrt"
USE_MANYLINUX: ON
steps:
- template: scripts/azure-linux_mac.yml

- stage: Build_Release
condition: or(or(or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev')), startsWith(variables['Build.SourceBranchName'], 'release-')), startsWith(variables['Build.SourceBranchName'], 'build-'))
variables:
Expand Down
Loading
Loading