Skip to content

[WIP] Add llvm-installer clang builds on OS X targets #940

[WIP] Add llvm-installer clang builds on OS X targets

[WIP] Add llvm-installer clang builds on OS X targets #940

Workflow file for this run

name: ci
on:
push:
branches:
- master
# Not all of these branches might exist.
- 2.20
- 2024.1
paths-ignore:
- README.md
# Run tests for any PRs.
pull_request:
branches:
- master
- 2.20
- 2024.1
paths-ignore:
- README.md
jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.runs_on }}
if: >
(github.event_name == 'push' &&
!contains(github.event.head_commit.message, 'skip ci') &&
!contains(github.event.head_commit.message, 'ci skip') &&
!contains(github.event.head_commit.message, 'skip github actions')) ||
github.event_name == 'pull_request'
strategy:
# To avoid terminating all jobs when one job fails.
fail-fast: false
matrix:
include:
# ---------------------------------------------------------------------------------------
# Ubuntu 22.04
# ---------------------------------------------------------------------------------------
#- name: ubuntu2204-x86_64-gcc11
#runs_on: ubuntu-24.04 # For the top-level VM only. We use Docker in it.
#docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
#build_thirdparty_args: >-
#--compiler-prefix=/usr
#--compiler-family=gcc
#--compiler-suffix=-11
#architecture: x86_64
#- name: ubuntu2204-x86_64-gcc12
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
#build_thirdparty_args: >-
#--compiler-prefix=/usr
#--compiler-family=gcc
#--compiler-suffix=-12
#architecture: x86_64
#- name: ubuntu2204-x86_64-clang17
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
#build_thirdparty_args: >-
#--toolchain=llvm17
#architecture: x86_64
#- name: ubuntu2204-x86_64-clang19
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2204_x86_64:v2024-09-20T23_57_46
#build_thirdparty_args: >-
#--toolchain=llvm19
#architecture: x86_64
## ---------------------------------------------------------------------------------------
## Ubuntu 24.04
## ---------------------------------------------------------------------------------------
## GCC 11 and GCC 12 have DiskANN compilation issues on Ubuntu 24.04.
#- name: ubuntu2404-x86_64-gcc13
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
#build_thirdparty_args: >-
#--compiler-prefix=/usr
#--compiler-family=gcc
#--compiler-suffix=-13
#architecture: x86_64
#- name: ubuntu2404-x86_64-clang17
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
#build_thirdparty_args: >-
#--toolchain=llvm17
#architecture: x86_64
#- name: ubuntu2404-x86_64-clang19
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
#build_thirdparty_args: >-
#--toolchain=llvm19
#architecture: x86_64
## ---------------------------------------------------------------------------------------
## AlmaLinux 8
## ---------------------------------------------------------------------------------------
#- name: almalinux8-x86_64-gcc11
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--devtoolset=11
#architecture: x86_64
#- name: almalinux8-x86_64-gcc12
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--devtoolset=12
#architecture: x86_64
#- name: almalinux8-x86_64-gcc13
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--devtoolset=13
#architecture: x86_64
## Clang/LLVM 17
#- name: almalinux8-x86_64-clang17
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--toolchain=llvm17
#architecture: x86_64
#- name: almalinux8-x86_64-clang17-full-lto
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--toolchain=llvm17
#--lto=full
#architecture: x86_64
## Clang/LLVM 19
#- name: almalinux8-x86_64-clang19
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--toolchain=llvm19
#architecture: x86_64
#- name: almalinux8-x86_64-clang19-full-lto
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
#build_thirdparty_args: >-
#--toolchain=llvm19
#--lto=full
#architecture: x86_64
## ---------------------------------------------------------------------------------------
## AlmaLinux 9
## ---------------------------------------------------------------------------------------
#- name: almalinux9-x86_64-gcc12
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
#build_thirdparty_args: >-
#--devtoolset=12
#architecture: x86_64
#- name: almalinux9-x86_64-gcc13
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
#build_thirdparty_args: >-
#--devtoolset=13
#architecture: x86_64
#- name: almalinux9-x86_64-clang19
#runs_on: ubuntu-24.04
#docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
#build_thirdparty_args: >-
#--toolchain=llvm19
#architecture: x86_64
# ---------------------------------------------------------------------------------------
# macOS
# ---------------------------------------------------------------------------------------
- name: macos-x86_64-clang19
runs_on: macos-13
docker_image:
build_thirdparty_args: >-
--enforce_arch=x86_64
--toolchain=llvm19
architecture: x86_64
- name: macos-arm64
# According to https://github.com/orgs/community/discussions/69211, this is the runner
# type that corresponds to Apple Silicon.
runs_on: macos-13-xlarge
docker_image:
build_thirdparty_args: >-
--enforce_arch=arm64
--toolchain=llvm19
architecture: arm64
# ---------------------------------------------------------------------------------------
# aarch64 - almalinux8 builds
# ---------------------------------------------------------------------------------------
#- name: almalinux8-aarch64-clang17
#runs_on: ubuntu-24.04-aarch64-4core-16gb
#docker_image: yugabyteci/yb_build_infra_almalinux8_aarch64:v2024-09-20T23_59_06
#build_thirdparty_args: >-
#--toolchain=llvm17
#--skip-sanitizers
#- name: almalinux8-aarch64-clang17-full-lto
#runs_on: ubuntu-24.04-aarch64-4core-16gb
#docker_image: yugabyteci/yb_build_infra_almalinux8_aarch64:v2024-09-20T23_59_06
#build_thirdparty_args: >-
#--toolchain=llvm17
#--skip-sanitizers
#--lto=full
#- name: almalinux8-aarch64-clang19
#runs_on: ubuntu-24.04-aarch64-4core-16gb
#docker_image: yugabyteci/yb_build_infra_almalinux8_aarch64:v2024-09-20T23_59_06
#build_thirdparty_args: >-
#--toolchain=llvm19
#--skip-sanitizers
#- name: almalinux8-aarch64-clang19-full-lto
#runs_on: ubuntu-24.04-aarch64-4core-16gb
#docker_image: yugabyteci/yb_build_infra_almalinux8_aarch64:v2024-09-20T23_59_06
#build_thirdparty_args: >-
#--toolchain=llvm19
#--skip-sanitizers
#--lto=full
steps:
- name: Increase disk space
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf /opt/ghc
sudo rm -rf "/usr/local/share/boost"
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- name: Clone repository
uses: actions/checkout@v2
with:
# We need to fetch all history because we are cloning the checkout directory further
# in test code.
fetch-depth: 0
# Python version really only matters in the non-docker cases (macos), but it should match
# the version used in the docker images, for a common requirements_frozen.txt.
# The linux images (from build-infra repo) should be updated to newer python and this version
# updated to match.
# This action puts python and python3.9 in path, but python3 is still latest version.
# See setting in .github/workflows/macos_build.sh
- name: PythonVer
uses: actions/setup-python@v5
with:
python-version: '3.9'
- name: Build
run: .github/workflows/github_actions_build.sh
env:
YB_DOCKER_IMAGE: ${{ matrix.docker_image }}
YB_THIRDPARTY_ARCHIVE_NAME_SUFFIX: ${{ matrix.name }}
YB_BUILD_THIRDPARTY_ARGS: ${{ matrix.build_thirdparty_args }}
GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }}
SNYK_TOKEN: ${{ secrets.SNYK_AUTH_TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: yugabyte-db-thirdparty-${{ matrix.name }}.tar.gz
path: archive.tar.gz
- uses: actions/upload-artifact@v4
with:
name: yugabyte-db-thirdparty-${{ matrix.name }}.tar.gz.sha256
path: archive.tar.gz.sha256