Skip to content

[DEVOPS-3278] Move thirdparty builds off of amzn2 #880

[DEVOPS-3278] Move thirdparty builds off of amzn2

[DEVOPS-3278] Move thirdparty builds off of amzn2 #880

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 20.04
# ---------------------------------------------------------------------------------------
- name: ubuntu2004-x86_64-clang16
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2004_x86_64:v2024-09-13T18_52_51
build_thirdparty_args: >-
--toolchain=llvm16
architecture: x86_64
# ---------------------------------------------------------------------------------------
# Ubuntu 22.04
# ---------------------------------------------------------------------------------------
- name: ubuntu2204-x86_64-gcc11
runs_on: ubuntu-20.04 # Ubuntu 20.04 is 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-20.04 # Ubuntu 20.04 is 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=-12
architecture: x86_64
- name: ubuntu2204-x86_64-clang17
runs_on: ubuntu-20.04 # Ubuntu 20.04 is 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: >-
--toolchain=llvm17
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_ubuntu2404_x86_64:v2024-09-20T23_57_48
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64
# ---------------------------------------------------------------------------------------
# AlmaLinux 8
# ---------------------------------------------------------------------------------------
- name: almalinux8-x86_64-gcc11
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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 18
# TODO: enable ASAN/TSAN for Clang 18.
# Need to debug build failures without the --skip-sanitizers flag.
- name: almalinux8-x86_64-clang18
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--toolchain=llvm18
--skip-sanitizers
architecture: x86_64
- name: almalinux8-x86_64-clang18-full-lto
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux8_x86_64:v2024-09-20T20_33_55
build_thirdparty_args: >-
--toolchain=llvm18
--lto=full
--skip-sanitizers
architecture: x86_64
# ---------------------------------------------------------------------------------------
# AlmaLinux 9
# ---------------------------------------------------------------------------------------
- name: almalinux9-x86_64-gcc12
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
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-clang17
runs_on: ubuntu-20.04 # Ubuntu 20.04 is for the top-level VM only. We use Docker in it.
docker_image: yugabyteci/yb_build_infra_almalinux9_x86_64:v2024-09-20T20_33_54
build_thirdparty_args: >-
--toolchain=llvm17
architecture: x86_64
# ---------------------------------------------------------------------------------------
# macOS
# ---------------------------------------------------------------------------------------
- name: macos-x86_64
runs_on: macos-13
docker_image:
build_thirdparty_args: --enforce_arch=x86_64
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
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-clang18
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=llvm18
--skip-sanitizers
- name: almalinux8-aarch64-clang18-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=llvm18
--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
- 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